From 3434f89da90843a8c856b9d0e2a7651d122a3149 Mon Sep 17 00:00:00 2001 From: Jaroslav S Date: Tue, 2 Jun 2026 10:25:29 +0200 Subject: [PATCH 1/8] symfony-8.1 fixed deprecation for symfony 6.4 --- src/Data/Command/CommandExecutor.php | 2 +- src/Data/Command/CommandResult.php | 8 ++++---- src/Data/Command/CommandResultInterface.php | 2 +- src/Data/Command/Message.php | 2 +- .../FilterRuleProcessor/ContainsOperatorProcessor.php | 2 +- .../Driver/DoctrineDBAL/Command/RecordIterator.php | 2 +- src/Data/Driver/DoctrineDBAL/QueryExecutor.php | 6 +++--- src/Data/Driver/DoctrineDBAL/QueryExecutorFactory.php | 2 +- src/Data/Driver/DoctrineDBAL/ResultIteratorFactory.php | 2 +- src/Data/Driver/DoctrineORM/Command/RecordIterator.php | 4 ++-- src/Data/Driver/DoctrineORM/ObjectManager.php | 6 +++--- src/Data/Driver/DoctrineORM/QueryExecutor.php | 10 +++++----- src/Data/Driver/DoctrineORM/ResultIteratorFactory.php | 2 +- src/Data/Driver/Driver.php | 2 +- .../Query/DisplayCriteria/DisplayCriteriaFactory.php | 6 +++--- .../DisplayCriteriaQueryBuilderDelegate.php | 2 +- src/Data/Query/DisplayCriteria/Filter/ChoiceRule.php | 2 +- src/Data/Query/DisplayCriteria/PagerFactory.php | 2 +- src/Data/Query/DisplayCriteria/Reader/ArrayReader.php | 4 ++-- .../DisplayCriteria/Reader/DisplayCriteriaReader.php | 4 ++-- src/Data/Query/DisplayCriteria/Reader/ExtJsReader.php | 4 ++-- .../DisplayCriteria/Reader/RequestQueryReader.php | 4 ++-- .../Query/DisplayCriteria/Reader/SessionReader.php | 6 +++--- src/Data/Query/QueryExecutor.php | 6 +++--- src/Data/Query/QueryExecutorDelegate.php | 6 +++--- src/Data/Query/QueryExecutorFactoryInterface.php | 2 +- src/Data/Query/QueryExecutorInterface.php | 6 +++--- src/Exception/UnsupportedQueryObjectException.php | 2 +- 28 files changed, 54 insertions(+), 54 deletions(-) diff --git a/src/Data/Command/CommandExecutor.php b/src/Data/Command/CommandExecutor.php index 77c6665..c3e47da 100644 --- a/src/Data/Command/CommandExecutor.php +++ b/src/Data/Command/CommandExecutor.php @@ -9,7 +9,7 @@ class CommandExecutor implements CommandExecutorInterface private ?LoggerInterface $logger; private bool $debug; - public function __construct(HandlerRepositoryInterface $handlerRepository, LoggerInterface $logger = null, bool $debug = false) + public function __construct(HandlerRepositoryInterface $handlerRepository, ?LoggerInterface $logger = null, bool $debug = false) { $this->handlerRepository = $handlerRepository; $this->logger = $logger; diff --git a/src/Data/Command/CommandResult.php b/src/Data/Command/CommandResult.php index 7f2e563..3241077 100644 --- a/src/Data/Command/CommandResult.php +++ b/src/Data/Command/CommandResult.php @@ -22,7 +22,7 @@ final class CommandResult implements CommandResultInterface * * @throws \LogicException */ - public function __construct(bool $success, array $messages = [], \Exception $exception = null) + public function __construct(bool $success, array $messages = [], ?\Exception $exception = null) { if ($success && $exception) { throw new \LogicException('Result cannot be successful with exception.'); @@ -37,7 +37,7 @@ public function __construct(bool $success, array $messages = [], \Exception $exc /** * @param mixed[] $parameters */ - public static function success(string $message = null, array $parameters = []): self + public static function success(?string $message = null, array $parameters = []): self { $messages = []; if ($message) { @@ -50,7 +50,7 @@ public static function success(string $message = null, array $parameters = []): /** * @param mixed[] $parameters */ - public static function error(string $message = null, array $parameters = [], \Exception $exception = null): self + public static function error(?string $message = null, array $parameters = [], ?\Exception $exception = null): self { $messages = []; @@ -103,7 +103,7 @@ public function getException(): ?\Exception return $this->exception; } - public function throwException(string $exceptionClass = null): void + public function throwException(?string $exceptionClass = null): void { if (!$this->isSuccessful()) { if ($this->hasException()) { diff --git a/src/Data/Command/CommandResultInterface.php b/src/Data/Command/CommandResultInterface.php index 4395cfe..8b721f3 100644 --- a/src/Data/Command/CommandResultInterface.php +++ b/src/Data/Command/CommandResultInterface.php @@ -21,7 +21,7 @@ public function getException(): ?\Exception; /** * @throws \Exception */ - public function throwException(string $exceptionClass = null): void; + public function throwException(?string $exceptionClass = null): void; public function addMessage(MessageInterface $message): void; diff --git a/src/Data/Command/Message.php b/src/Data/Command/Message.php index e0c2da0..71165cc 100644 --- a/src/Data/Command/Message.php +++ b/src/Data/Command/Message.php @@ -16,7 +16,7 @@ class Message implements MessageInterface /** * @param mixed[] $parameters */ - public function __construct(string $type, string $text = null, array $parameters = [], string $translationDomain = null) + public function __construct(string $type, ?string $text = null, array $parameters = [], ?string $translationDomain = null) { $this->type = $type; $this->text = $text; diff --git a/src/Data/Driver/DoctrineCommon/FilterRuleProcessor/ContainsOperatorProcessor.php b/src/Data/Driver/DoctrineCommon/FilterRuleProcessor/ContainsOperatorProcessor.php index 78dd280..bf1c1bb 100644 --- a/src/Data/Driver/DoctrineCommon/FilterRuleProcessor/ContainsOperatorProcessor.php +++ b/src/Data/Driver/DoctrineCommon/FilterRuleProcessor/ContainsOperatorProcessor.php @@ -28,7 +28,7 @@ public function __construct() $this->setFunction(); } - public function setFunction(string $function = null): void + public function setFunction(?string $function = null): void { $this->dbalFunctionTemplate = $function ? \sprintf('%s(%%s)', $function) : '%s'; $this->ormFunctionTemplate = $function ? 'unaccent_lower(%s)' : '%s'; diff --git a/src/Data/Driver/DoctrineDBAL/Command/RecordIterator.php b/src/Data/Driver/DoctrineDBAL/Command/RecordIterator.php index 938a174..f709cd7 100644 --- a/src/Data/Driver/DoctrineDBAL/Command/RecordIterator.php +++ b/src/Data/Driver/DoctrineDBAL/Command/RecordIterator.php @@ -22,7 +22,7 @@ class RecordIterator public function __construct( QueryExecutor $queryExecutor, ResultIteratorFactory $resultIteratorFactory, - LoggerInterface $logger = null + ?LoggerInterface $logger = null ) { $this->queryExecutor = $queryExecutor; $this->resultIteratorFactory = $resultIteratorFactory; diff --git a/src/Data/Driver/DoctrineDBAL/QueryExecutor.php b/src/Data/Driver/DoctrineDBAL/QueryExecutor.php index 2491664..8fef0de 100644 --- a/src/Data/Driver/DoctrineDBAL/QueryExecutor.php +++ b/src/Data/Driver/DoctrineDBAL/QueryExecutor.php @@ -33,7 +33,7 @@ public function __construct(Connection $connection, DisplayCriteriaQueryBuilderD $this->resultNormalizer = $resultNormalizer; } - public function count(BaseQueryObjectInterface $queryObject, DisplayCriteriaInterface $displayCriteria = null): int + public function count(BaseQueryObjectInterface $queryObject, ?DisplayCriteriaInterface $displayCriteria = null): int { if (!$queryObject instanceof DoctrineDBALQueryObjectInterface) { throw new UnsupportedQueryObjectException($queryObject, $this); @@ -58,7 +58,7 @@ public function count(BaseQueryObjectInterface $queryObject, DisplayCriteriaInte return $qb->select(\sprintf('COUNT(%s)', $count))->executeQuery()->fetchOne(); } - public function execute(BaseQueryObjectInterface $queryObject, DisplayCriteriaInterface $displayCriteria = null) + public function execute(BaseQueryObjectInterface $queryObject, ?DisplayCriteriaInterface $displayCriteria = null) { if (!$queryObject instanceof DoctrineDBALQueryObjectInterface) { throw new UnsupportedQueryObjectException($queryObject, $this); @@ -77,7 +77,7 @@ public function execute(BaseQueryObjectInterface $queryObject, DisplayCriteriaIn return $qb->executeStatement(); } - public function executeAndCount(BaseQueryObjectInterface $queryObject, DisplayCriteriaInterface $displayCriteria = null): array + public function executeAndCount(BaseQueryObjectInterface $queryObject, ?DisplayCriteriaInterface $displayCriteria = null): array { return [ $this->execute($queryObject, $displayCriteria), diff --git a/src/Data/Driver/DoctrineDBAL/QueryExecutorFactory.php b/src/Data/Driver/DoctrineDBAL/QueryExecutorFactory.php index 7ecb1ba..fc6ebb3 100644 --- a/src/Data/Driver/DoctrineDBAL/QueryExecutorFactory.php +++ b/src/Data/Driver/DoctrineDBAL/QueryExecutorFactory.php @@ -28,7 +28,7 @@ public function __construct( $this->container = $container; } - public function createWithConnection(string $connectionName = null): QueryExecutorInterface + public function createWithConnection(?string $connectionName = null): QueryExecutorInterface { if ($connectionName !== null) { $connectionId = \sprintf('doctrine.dbal.%s_connection', $connectionName); diff --git a/src/Data/Driver/DoctrineDBAL/ResultIteratorFactory.php b/src/Data/Driver/DoctrineDBAL/ResultIteratorFactory.php index e8c78e7..4eb1bb2 100644 --- a/src/Data/Driver/DoctrineDBAL/ResultIteratorFactory.php +++ b/src/Data/Driver/DoctrineDBAL/ResultIteratorFactory.php @@ -30,7 +30,7 @@ public function __construct( /** * @param mixed[] $criteria */ - public function create(QueryObjectInterface $queryObject, array $criteria, FilterInterface $filter = null): ResultIterator + public function create(QueryObjectInterface $queryObject, array $criteria, ?FilterInterface $filter = null): ResultIterator { if (!isset($criteria['filter_type'])) { throw new LogicException('Filter type has to be specified!'); diff --git a/src/Data/Driver/DoctrineORM/Command/RecordIterator.php b/src/Data/Driver/DoctrineORM/Command/RecordIterator.php index 7b67274..2ba5fbd 100644 --- a/src/Data/Driver/DoctrineORM/Command/RecordIterator.php +++ b/src/Data/Driver/DoctrineORM/Command/RecordIterator.php @@ -21,7 +21,7 @@ class RecordIterator public function __construct( QueryExecutor $queryExecutor, ResultIteratorFactory $resultIteratorFactory, - LoggerInterface $logger = null + ?LoggerInterface $logger = null ) { $this->queryExecutor = $queryExecutor; $this->resultIteratorFactory = $resultIteratorFactory; @@ -47,7 +47,7 @@ public function eachIdentifier(RecordIteratorArgs $recordIteratorArgs): CommandR /** * @param mixed $values */ - protected function passValues($values, callable $callback, QueryObjectInterface $queryObject = null): CommandResult + protected function passValues($values, callable $callback, ?QueryObjectInterface $queryObject = null): CommandResult { try { $this->queryExecutor->getManager($queryObject)->beginTransaction(); diff --git a/src/Data/Driver/DoctrineORM/ObjectManager.php b/src/Data/Driver/DoctrineORM/ObjectManager.php index f60966c..932ba75 100644 --- a/src/Data/Driver/DoctrineORM/ObjectManager.php +++ b/src/Data/Driver/DoctrineORM/ObjectManager.php @@ -16,7 +16,7 @@ public function __construct(ManagerRegistry $registry) /** * @param string|null $name The object manager name (null for the default one). */ - public function flush(string $name = null): void + public function flush(?string $name = null): void { $this->registry->getManager($name)->flush(); } @@ -24,7 +24,7 @@ public function flush(string $name = null): void /** * @param string|null $name The object manager name (null for the default one). */ - public function persist(object $object, string $name = null): void + public function persist(object $object, ?string $name = null): void { $this->registry->getManager($name)->persist($object); } @@ -32,7 +32,7 @@ public function persist(object $object, string $name = null): void /** * @param string|null $name The object manager name (null for the default one). */ - public function remove(object $object, string $name = null): void + public function remove(object $object, ?string $name = null): void { $this->registry->getManager($name)->remove($object); } diff --git a/src/Data/Driver/DoctrineORM/QueryExecutor.php b/src/Data/Driver/DoctrineORM/QueryExecutor.php index df0b691..5f8e5d4 100644 --- a/src/Data/Driver/DoctrineORM/QueryExecutor.php +++ b/src/Data/Driver/DoctrineORM/QueryExecutor.php @@ -37,7 +37,7 @@ private function createPaginator(DoctrineORMQueryObjectInterface $queryObject, Q return new Paginator($query, true); } - public function count(BaseQueryObjectInterface $queryObject, DisplayCriteriaInterface $displayCriteria = null): int + public function count(BaseQueryObjectInterface $queryObject, ?DisplayCriteriaInterface $displayCriteria = null): int { if (!($queryObject instanceof DoctrineORMQueryObjectInterface)) { throw new UnsupportedQueryObjectException($queryObject, $this); @@ -55,7 +55,7 @@ public function count(BaseQueryObjectInterface $queryObject, DisplayCriteriaInte return \count($paginator); } - public function execute(BaseQueryObjectInterface $queryObject, DisplayCriteriaInterface $displayCriteria = null) + public function execute(BaseQueryObjectInterface $queryObject, ?DisplayCriteriaInterface $displayCriteria = null) { if (!($queryObject instanceof DoctrineORMQueryObjectInterface)) { throw new UnsupportedQueryObjectException($queryObject, $this); @@ -70,7 +70,7 @@ public function execute(BaseQueryObjectInterface $queryObject, DisplayCriteriaIn return $this->getResult($queryObject, $qb->getQuery()); } - public function executeAndCount(BaseQueryObjectInterface $queryObject, DisplayCriteriaInterface $displayCriteria = null): array + public function executeAndCount(BaseQueryObjectInterface $queryObject, ?DisplayCriteriaInterface $displayCriteria = null): array { return [ $this->execute($queryObject, $displayCriteria), @@ -99,7 +99,7 @@ public function rollback(): void $this->getManager()->rollback(); } - public function getManager(BaseQueryObjectInterface $queryObject = null): EntityManager + public function getManager(?BaseQueryObjectInterface $queryObject = null): EntityManager { $manager = $this->managerRegistry->getManager($this->getManagerName($queryObject)); @@ -116,7 +116,7 @@ public function getManager(BaseQueryObjectInterface $queryObject = null): Entity return $manager; } - private function getManagerName(BaseQueryObjectInterface $queryObject = null): ?string + private function getManagerName(?BaseQueryObjectInterface $queryObject = null): ?string { if ($queryObject instanceof ManagerQueryObjectInterface) { $name = $queryObject->getManagerName(); diff --git a/src/Data/Driver/DoctrineORM/ResultIteratorFactory.php b/src/Data/Driver/DoctrineORM/ResultIteratorFactory.php index 110fdf7..46e9c56 100644 --- a/src/Data/Driver/DoctrineORM/ResultIteratorFactory.php +++ b/src/Data/Driver/DoctrineORM/ResultIteratorFactory.php @@ -27,7 +27,7 @@ public function __construct( /** * @param mixed[] $criteria */ - public function create(QueryObjectInterface $queryObject, array $criteria = [], FilterInterface $filter = null): ResultIterator + public function create(QueryObjectInterface $queryObject, array $criteria = [], ?FilterInterface $filter = null): ResultIterator { if (!$filter && \array_key_exists('filter_type', $criteria)) { $filter = $this->createFilter($criteria); diff --git a/src/Data/Driver/Driver.php b/src/Data/Driver/Driver.php index 1b94484..9b3505c 100644 --- a/src/Data/Driver/Driver.php +++ b/src/Data/Driver/Driver.php @@ -15,7 +15,7 @@ public function __construct( string $name, QueryExecutorInterface $queryExecutor, string $queryObjectClass, - ObjectManagerInterface $objectManager = null + ?ObjectManagerInterface $objectManager = null ) { $this->name = $name; $this->objectManager = $objectManager; diff --git a/src/Data/Query/DisplayCriteria/DisplayCriteriaFactory.php b/src/Data/Query/DisplayCriteria/DisplayCriteriaFactory.php index 373c92b..4ccd0f0 100644 --- a/src/Data/Query/DisplayCriteria/DisplayCriteriaFactory.php +++ b/src/Data/Query/DisplayCriteria/DisplayCriteriaFactory.php @@ -41,7 +41,7 @@ public function createCriteria(array $options = [], bool $persistent = false): D /** * @param mixed[] $pager */ - public function createPager(string $componentId = null, array $pager = [], bool $persistent = false): PagerInterface + public function createPager(?string $componentId = null, array $pager = [], bool $persistent = false): PagerInterface { return $this->pagerFactory->createPager( (int) $this->displayCriteriaReader->readAttribute( @@ -59,7 +59,7 @@ public function createPager(string $componentId = null, array $pager = [], bool ); } - public function createFilter(string $componentId = null, FilterInterface $filter = null, bool $persistent = false): FilterInterface + public function createFilter(?string $componentId = null, ?FilterInterface $filter = null, bool $persistent = false): FilterInterface { if (!\is_null($filter)) { $filterData = $this @@ -110,7 +110,7 @@ public function createFilter(string $componentId = null, FilterInterface $filter /** * @param mixed[] $sorter */ - public function createSorter(string $componentId = null, array $sorter = [], bool $persistent = false): SorterInterface + public function createSorter(?string $componentId = null, array $sorter = [], bool $persistent = false): SorterInterface { $sorterData = $this ->displayCriteriaReader diff --git a/src/Data/Query/DisplayCriteria/DisplayCriteriaQueryBuilderDelegate.php b/src/Data/Query/DisplayCriteria/DisplayCriteriaQueryBuilderDelegate.php index 41b5fd0..f143ecb 100644 --- a/src/Data/Query/DisplayCriteria/DisplayCriteriaQueryBuilderDelegate.php +++ b/src/Data/Query/DisplayCriteria/DisplayCriteriaQueryBuilderDelegate.php @@ -45,7 +45,7 @@ private function getBuilderFor(object $qb): DisplayCriteriaQueryBuilderInterface throw new UnsupportedQueryBuilderException($qb); } - public function apply(object $qb, QueryObjectInterface $queryObject, DisplayCriteriaInterface $displayCriteria = null): void + public function apply(object $qb, QueryObjectInterface $queryObject, ?DisplayCriteriaInterface $displayCriteria = null): void { if (null !== $displayCriteria) { $this->applyPager($qb, $displayCriteria->getPager()); diff --git a/src/Data/Query/DisplayCriteria/Filter/ChoiceRule.php b/src/Data/Query/DisplayCriteria/Filter/ChoiceRule.php index 4bc8308..5be422a 100644 --- a/src/Data/Query/DisplayCriteria/Filter/ChoiceRule.php +++ b/src/Data/Query/DisplayCriteria/Filter/ChoiceRule.php @@ -18,7 +18,7 @@ class ChoiceRule extends FilterRule * @param mixed[] $choices * @param mixed[] $options */ - public function __construct(string $name, array $choices, bool $multiple = false, string $type = null, array $options = []) + public function __construct(string $name, array $choices, bool $multiple = false, ?string $type = null, array $options = []) { parent::__construct($name, $options); diff --git a/src/Data/Query/DisplayCriteria/PagerFactory.php b/src/Data/Query/DisplayCriteria/PagerFactory.php index f3944dd..8ae7ea1 100644 --- a/src/Data/Query/DisplayCriteria/PagerFactory.php +++ b/src/Data/Query/DisplayCriteria/PagerFactory.php @@ -8,7 +8,7 @@ class PagerFactory { protected int $defaultLimit = 100; - public function createPager(int $page, int $limit = null): PagerInterface + public function createPager(int $page, ?int $limit = null): PagerInterface { $limit = $limit !== null ? $limit : $this->defaultLimit; diff --git a/src/Data/Query/DisplayCriteria/Reader/ArrayReader.php b/src/Data/Query/DisplayCriteria/Reader/ArrayReader.php index 1ef828d..ba046d5 100644 --- a/src/Data/Query/DisplayCriteria/Reader/ArrayReader.php +++ b/src/Data/Query/DisplayCriteria/Reader/ArrayReader.php @@ -19,7 +19,7 @@ public function __construct(array $attributes = []) $this->attributes = $attributes; } - public function clearAttribute(string $name, string $component = null, $emptyValue = null): void + public function clearAttribute(string $name, ?string $component = null, $emptyValue = null): void { if (null === $emptyValue) { unset($this->attributes[$name]); @@ -28,7 +28,7 @@ public function clearAttribute(string $name, string $component = null, $emptyVal } } - public function readAttribute(string $name, $default = null, string $component = null, bool $persistent = false) + public function readAttribute(string $name, $default = null, ?string $component = null, bool $persistent = false) { return \array_key_exists($name, $this->attributes) ? $this->attributes[$name] : $default; } diff --git a/src/Data/Query/DisplayCriteria/Reader/DisplayCriteriaReader.php b/src/Data/Query/DisplayCriteria/Reader/DisplayCriteriaReader.php index 84f3fbe..70d997f 100644 --- a/src/Data/Query/DisplayCriteria/Reader/DisplayCriteriaReader.php +++ b/src/Data/Query/DisplayCriteria/Reader/DisplayCriteriaReader.php @@ -16,12 +16,12 @@ interface DisplayCriteriaReader * * @return mixed */ - public function readAttribute(string $name, $default = null, string $component = null, bool $persistent = false); + public function readAttribute(string $name, $default = null, ?string $component = null, bool $persistent = false); /** * @param mixed $emptyValue */ - public function clearAttribute(string $name, string $component = null, $emptyValue = null): void; + public function clearAttribute(string $name, ?string $component = null, $emptyValue = null): void; public function attributeName(string $name): string; } diff --git a/src/Data/Query/DisplayCriteria/Reader/ExtJsReader.php b/src/Data/Query/DisplayCriteria/Reader/ExtJsReader.php index 0abf463..e6664ad 100644 --- a/src/Data/Query/DisplayCriteria/Reader/ExtJsReader.php +++ b/src/Data/Query/DisplayCriteria/Reader/ExtJsReader.php @@ -11,7 +11,7 @@ */ class ExtJsReader extends SessionReader { - public function readAttribute(string $name, $default = null, string $component = null, bool $persistent = false) + public function readAttribute(string $name, $default = null, ?string $component = null, bool $persistent = false) { $request = $this->requestStack->getCurrentRequest(); @@ -78,7 +78,7 @@ protected function readSorter(Request $request, ?string $component, string $path return \count($value) ? $value : null; } - protected function createAttributePath(string $attributeName, string $component = null): string + protected function createAttributePath(string $attributeName, ?string $component = null): string { $extAttributeName = $this->attributeName($attributeName); diff --git a/src/Data/Query/DisplayCriteria/Reader/RequestQueryReader.php b/src/Data/Query/DisplayCriteria/Reader/RequestQueryReader.php index 76545aa..68670da 100644 --- a/src/Data/Query/DisplayCriteria/Reader/RequestQueryReader.php +++ b/src/Data/Query/DisplayCriteria/Reader/RequestQueryReader.php @@ -8,7 +8,7 @@ */ class RequestQueryReader extends SessionReader { - public function readAttribute(string $name, $default = null, string $component = null, bool $persistent = false) + public function readAttribute(string $name, $default = null, ?string $component = null, bool $persistent = false) { $request = $this->requestStack->getCurrentRequest(); @@ -21,7 +21,7 @@ public function readAttribute(string $name, $default = null, string $component = : $default; } - protected function createAttributePath(string $attributeName, string $component = null): string + protected function createAttributePath(string $attributeName, ?string $component = null): string { if ($component) { return $component . '[' . $attributeName . ']'; diff --git a/src/Data/Query/DisplayCriteria/Reader/SessionReader.php b/src/Data/Query/DisplayCriteria/Reader/SessionReader.php index 290a2ac..69a969c 100644 --- a/src/Data/Query/DisplayCriteria/Reader/SessionReader.php +++ b/src/Data/Query/DisplayCriteria/Reader/SessionReader.php @@ -15,7 +15,7 @@ public function __construct(RequestStack $requestStack) $this->requestStack = $requestStack; } - public function clearAttribute(string $name, string $component = null, $emptyValue = null): void + public function clearAttribute(string $name, ?string $component = null, $emptyValue = null): void { $session = $this->requestStack->getCurrentRequest()->getSession(); @@ -28,7 +28,7 @@ public function clearAttribute(string $name, string $component = null, $emptyVal } } - public function readAttribute(string $name, $default = null, string $component = null, bool $persistent = false) + public function readAttribute(string $name, $default = null, ?string $component = null, bool $persistent = false) { $request = $this->requestStack->getCurrentRequest(); $value = $default; @@ -48,7 +48,7 @@ public function readAttribute(string $name, $default = null, string $component = return $value; } - protected function getAttributeSessionKey(string $name, string $component = null): ?string + protected function getAttributeSessionKey(string $name, ?string $component = null): ?string { if (null !== $component) { return "imatic.data.display_criteria.{$component}.{$name}"; diff --git a/src/Data/Query/QueryExecutor.php b/src/Data/Query/QueryExecutor.php index 3fa4a18..e714c00 100644 --- a/src/Data/Query/QueryExecutor.php +++ b/src/Data/Query/QueryExecutor.php @@ -13,17 +13,17 @@ public function __construct(DriverRepositoryInterface $driverRepository) $this->driverRepository = $driverRepository; } - public function execute(QueryObjectInterface $queryObject, DisplayCriteriaInterface $displayCriteria = null) + public function execute(QueryObjectInterface $queryObject, ?DisplayCriteriaInterface $displayCriteria = null) { return $this->driverRepository->getQueryExecutorFor($queryObject)->execute($queryObject, $displayCriteria); } - public function count(QueryObjectInterface $queryObject, DisplayCriteriaInterface $displayCriteria = null): int + public function count(QueryObjectInterface $queryObject, ?DisplayCriteriaInterface $displayCriteria = null): int { return $this->driverRepository->getQueryExecutorFor($queryObject)->count($queryObject, $displayCriteria); } - public function executeAndCount(QueryObjectInterface $queryObject, DisplayCriteriaInterface $displayCriteria = null): array + public function executeAndCount(QueryObjectInterface $queryObject, ?DisplayCriteriaInterface $displayCriteria = null): array { return $this->driverRepository->getQueryExecutorFor($queryObject)->executeAndCount($queryObject, $displayCriteria); } diff --git a/src/Data/Query/QueryExecutorDelegate.php b/src/Data/Query/QueryExecutorDelegate.php index 51bbb95..9eb39a0 100644 --- a/src/Data/Query/QueryExecutorDelegate.php +++ b/src/Data/Query/QueryExecutorDelegate.php @@ -12,17 +12,17 @@ public function __construct(QueryExecutorFactoryInterface $queryExecutorFactory) $this->queryExecutorFactory = $queryExecutorFactory; } - public function count(QueryObjectInterface $queryObject, DisplayCriteriaInterface $displayCriteria = null): int + public function count(QueryObjectInterface $queryObject, ?DisplayCriteriaInterface $displayCriteria = null): int { return $this->getQueryExecutor($queryObject)->count($queryObject, $displayCriteria); } - public function execute(QueryObjectInterface $queryObject, DisplayCriteriaInterface $displayCriteria = null) + public function execute(QueryObjectInterface $queryObject, ?DisplayCriteriaInterface $displayCriteria = null) { return $this->getQueryExecutor($queryObject)->execute($queryObject, $displayCriteria); } - public function executeAndCount(QueryObjectInterface $queryObject, DisplayCriteriaInterface $displayCriteria = null): array + public function executeAndCount(QueryObjectInterface $queryObject, ?DisplayCriteriaInterface $displayCriteria = null): array { return $this->getQueryExecutor($queryObject)->executeAndCount($queryObject, $displayCriteria); } diff --git a/src/Data/Query/QueryExecutorFactoryInterface.php b/src/Data/Query/QueryExecutorFactoryInterface.php index 2c9c600..4a2a4f7 100644 --- a/src/Data/Query/QueryExecutorFactoryInterface.php +++ b/src/Data/Query/QueryExecutorFactoryInterface.php @@ -8,5 +8,5 @@ interface QueryExecutorFactoryInterface /** * @throws RuntimeException */ - public function createWithConnection(string $connectionName = null): QueryExecutorInterface; + public function createWithConnection(?string $connectionName = null): QueryExecutorInterface; } diff --git a/src/Data/Query/QueryExecutorInterface.php b/src/Data/Query/QueryExecutorInterface.php index 81c33d5..77eb2e9 100644 --- a/src/Data/Query/QueryExecutorInterface.php +++ b/src/Data/Query/QueryExecutorInterface.php @@ -10,14 +10,14 @@ interface QueryExecutorInterface * * @return mixed */ - public function execute(QueryObjectInterface $queryObject, DisplayCriteriaInterface $displayCriteria = null); + public function execute(QueryObjectInterface $queryObject, ?DisplayCriteriaInterface $displayCriteria = null); /** * Count matched objects. * * @return int Affected rows */ - public function count(QueryObjectInterface $queryObject, DisplayCriteriaInterface $displayCriteria = null): int; + public function count(QueryObjectInterface $queryObject, ?DisplayCriteriaInterface $displayCriteria = null): int; /** * Execute query and count the matched objects. @@ -26,5 +26,5 @@ public function count(QueryObjectInterface $queryObject, DisplayCriteriaInterfac * * @return array */ - public function executeAndCount(QueryObjectInterface $queryObject, DisplayCriteriaInterface $displayCriteria = null): array; + public function executeAndCount(QueryObjectInterface $queryObject, ?DisplayCriteriaInterface $displayCriteria = null): array; } diff --git a/src/Exception/UnsupportedQueryObjectException.php b/src/Exception/UnsupportedQueryObjectException.php index 2f698e8..7fb9a80 100644 --- a/src/Exception/UnsupportedQueryObjectException.php +++ b/src/Exception/UnsupportedQueryObjectException.php @@ -6,7 +6,7 @@ class UnsupportedQueryObjectException extends \InvalidArgumentException implements DataExceptionInterface { - public function __construct(QueryObjectInterface $queryObject, QueryExecutorInterface $queryExecutor = null) + public function __construct(QueryObjectInterface $queryObject, ?QueryExecutorInterface $queryExecutor = null) { $message = \sprintf( '"%s" is not supported by "%s"', From 281d9da362333058a5a54b9a1cb37f69be9d21f5 Mon Sep 17 00:00:00 2001 From: Jaroslav S Date: Wed, 3 Jun 2026 03:13:42 +0200 Subject: [PATCH 2/8] symfony-8.1 fixed deprecations for symfony 7.4 --- composer.json | 12 +-- config/data.xml | 39 -------- config/data.yaml | 42 +++++++++ config/data_doctrine.xml | 46 ---------- config/data_doctrine.yaml | 39 ++++++++ config/data_doctrine_dbal.xml | 84 ----------------- config/data_doctrine_dbal.yaml | 83 +++++++++++++++++ config/data_doctrine_orm.xml | 57 ------------ config/data_doctrine_orm.yaml | 57 ++++++++++++ config/services.xml | 47 ---------- config/services.yaml | 39 ++++++++ phpstan.neon.dist | 3 - .../AbstractFilterRuleProcessor.php | 6 +- .../BetweenOperatorProcessor.php | 9 +- .../ContainsOperatorProcessor.php | 9 +- .../DefaultRuleProcessor.php | 9 +- .../NotBetweenOperatorProcessor.php | 9 +- .../Driver/DoctrineDBAL/QueryExecutor.php | 7 +- .../Driver/DoctrineDBAL/Schema/Schema.php | 3 + src/Data/Driver/DoctrineORM/Paginator.php | 2 + .../DoctrineORM/Paginator/Impl/AstUtil.php | 2 +- src/Data/Driver/DoctrineORM/QueryExecutor.php | 3 +- src/Data/Query/DisplayCriteria/Filter.php | 12 +-- .../Query/DisplayCriteria/FilterInterface.php | 4 + .../Query/DisplayCriteria/SorterInterface.php | 1 + src/Data/ResultIterator.php | 8 +- src/DependencyInjection/Configuration.php | 2 +- .../ImaticDataExtension.php | 6 +- src/Doctrine/Common/Query/AST/Cast.php | 2 +- .../ArrayToStringTransformer.php | 5 +- .../DataFixtures/ORM/LoadOrderData.php | 7 +- .../ORM/LoadUnaccentLowerFunction.php | 2 +- .../DataFixtures/ORM/LoadUserData.php | 2 +- .../AppImaticDataExtension.php | 4 +- .../ImaticDataBundle/Entity/Order.php | 48 ++-------- .../ImaticDataBundle/Entity/User.php | 91 +++---------------- .../Query/UserListWithOrderNumbersQuery.php | 3 +- tests/Fixtures/TestProject/config/config.yml | 14 +-- 38 files changed, 375 insertions(+), 443 deletions(-) delete mode 100644 config/data.xml create mode 100644 config/data.yaml delete mode 100644 config/data_doctrine.xml create mode 100644 config/data_doctrine.yaml delete mode 100644 config/data_doctrine_dbal.xml create mode 100644 config/data_doctrine_dbal.yaml delete mode 100644 config/data_doctrine_orm.xml create mode 100644 config/data_doctrine_orm.yaml delete mode 100644 config/services.xml create mode 100644 config/services.yaml diff --git a/composer.json b/composer.json index 86325d7..b0c2d02 100644 --- a/composer.json +++ b/composer.json @@ -20,20 +20,20 @@ "ext-json": "*", "doctrine/dbal": "^3.0", "doctrine/doctrine-bundle": "^2.0", - "symfony/framework-bundle": "^4.4 || ^5.4 || ^6.2" + "symfony/framework-bundle": "^7.0" }, "require-dev": { "doctrine/doctrine-fixtures-bundle": "^3.0", "doctrine/orm": "^2.15", "friendsofphp/php-cs-fixer": "^3.2.1", - "imatic/form-bundle": "^5.0.0", - "imatic/testing": "^6.0.0", + "imatic/form-bundle": "^5.3.0", + "imatic/testing": "^6.1.0", "mikey179/vfsstream": "^1.4", "phpstan/phpstan": "^1.8", - "symfony/browser-kit": "^4.4 || ^5.0 || ^6.2", + "symfony/browser-kit": "^7.0", "symfony/phpunit-bridge": "^4.4 || ^5.0 || ^6.2", - "symfony/security-bundle": "^4.4 || ^5.0 || ^6.2", - "symfony/yaml": "^4.4 || ^5.0 || ^6.2" + "symfony/security-bundle": "^7.0", + "symfony/yaml": "^7.0" }, "suggest": { "doctrine/dbal": "*", diff --git a/config/data.xml b/config/data.xml deleted file mode 100644 index ceb8a58..0000000 --- a/config/data.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - - - %kernel.debug% - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/config/data.yaml b/config/data.yaml new file mode 100644 index 0000000..ce83759 --- /dev/null +++ b/config/data.yaml @@ -0,0 +1,42 @@ +services: + _defaults: + public: false + + Imatic\Bundle\DataBundle\Data\Command\HandlerRepository: + arguments: + - '@service_container' + + Imatic\Bundle\DataBundle\Data\Command\HandlerRepositoryInterface: + alias: Imatic\Bundle\DataBundle\Data\Command\HandlerRepository + + Imatic\Bundle\DataBundle\Data\Command\CommandExecutor: + arguments: + - '@Imatic\Bundle\DataBundle\Data\Command\HandlerRepository' + - '@?logger' + - '%kernel.debug%' + + Imatic\Bundle\DataBundle\Data\Command\CommandExecutorInterface: + alias: Imatic\Bundle\DataBundle\Data\Command\CommandExecutor + + Imatic\Bundle\DataBundle\Data\Driver\DriverRepository: ~ + + Imatic\Bundle\DataBundle\Data\Driver\DriverRepositoryInterface: + alias: Imatic\Bundle\DataBundle\Data\Driver\DriverRepository + + Imatic\Bundle\DataBundle\Data\Query\QueryExecutor: + arguments: + - '@Imatic\Bundle\DataBundle\Data\Driver\DriverRepository' + + Imatic\Bundle\DataBundle\Data\Query\QueryExecutorInterface: + alias: Imatic\Bundle\DataBundle\Data\Query\QueryExecutor + + Imatic\Bundle\DataBundle\Data\Query\DisplayCriteria\PagerFactory: ~ + + Imatic\Bundle\DataBundle\Data\Query\DisplayCriteria\FilterRuleProcessorDelegate: ~ + + Imatic\Bundle\DataBundle\Data\Query\DisplayCriteria\DisplayCriteriaQueryBuilderDelegate: + arguments: + - '@Imatic\Bundle\DataBundle\Data\Query\DisplayCriteria\FilterRuleProcessorDelegate' + + Imatic\Bundle\DataBundle\Data\Query\DisplayCriteria\DisplayCriteriaQueryBuilderInterface: + alias: Imatic\Bundle\DataBundle\Data\Query\DisplayCriteria\DisplayCriteriaQueryBuilderDelegate diff --git a/config/data_doctrine.xml b/config/data_doctrine.xml deleted file mode 100644 index 2388ad7..0000000 --- a/config/data_doctrine.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/data_doctrine.yaml b/config/data_doctrine.yaml new file mode 100644 index 0000000..654d2a0 --- /dev/null +++ b/config/data_doctrine.yaml @@ -0,0 +1,39 @@ +services: + _defaults: + public: false + + Imatic\Bundle\DataBundle\Data\Driver\DoctrineCommon\DisplayCriteriaQueryBuilder: + tags: + - { name: imatic_data.display_criteria_query_builder } + + Imatic\Bundle\DataBundle\Data\Driver\DoctrineCommon\FilterRuleProcessor\CallbackProcessor: + tags: + - { name: imatic_data.filter_rule_processor, priority: 6 } + + Imatic\Bundle\DataBundle\Data\Driver\DoctrineCommon\FilterRuleProcessor\RuleBooleanProcessor: + tags: + - { name: imatic_data.filter_rule_processor, priority: 5 } + + Imatic\Bundle\DataBundle\Data\Driver\DoctrineCommon\FilterRuleProcessor\BetweenOperatorProcessor: + tags: + - { name: imatic_data.filter_rule_processor, priority: 4 } + + Imatic\Bundle\DataBundle\Data\Driver\DoctrineCommon\FilterRuleProcessor\NotBetweenOperatorProcessor: + tags: + - { name: imatic_data.filter_rule_processor, priority: 3 } + + Imatic\Bundle\DataBundle\Data\Driver\DoctrineCommon\FilterRuleProcessor\ContainsOperatorProcessor: + tags: + - { name: imatic_data.filter_rule_processor, priority: 2 } + + Imatic\Bundle\DataBundle\Data\Driver\DoctrineCommon\FilterRuleProcessor\EmptyOperatorProcessor: + tags: + - { name: imatic_data.filter_rule_processor, priority: 1 } + + Imatic\Bundle\DataBundle\Data\Driver\DoctrineCommon\FilterRuleProcessor\InNotInOperatorProcessor: + tags: + - { name: imatic_data.filter_rule_processor, priority: 1 } + + Imatic\Bundle\DataBundle\Data\Driver\DoctrineCommon\FilterRuleProcessor\DefaultRuleProcessor: + tags: + - { name: imatic_data.filter_rule_processor, priority: 0 } diff --git a/config/data_doctrine_dbal.xml b/config/data_doctrine_dbal.xml deleted file mode 100644 index a8f4c58..0000000 --- a/config/data_doctrine_dbal.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - - - - - %imatic_data.driver.doctrine_dbal.schema.column_types% - - - - - - - - - - - - - - - - - - - - doctrine.dbal - - Imatic\Bundle\DataBundle\Data\Driver\DoctrineDBAL\QueryObjectInterface - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/data_doctrine_dbal.yaml b/config/data_doctrine_dbal.yaml new file mode 100644 index 0000000..b757821 --- /dev/null +++ b/config/data_doctrine_dbal.yaml @@ -0,0 +1,83 @@ +services: + _defaults: + public: false + + Imatic\Bundle\DataBundle\Data\Driver\DoctrineDBAL\Schema\Schema: + arguments: + - '@database_connection' + calls: + - [overwriteColumnTypes, ['%imatic_data.driver.doctrine_dbal.schema.column_types%']] + + Imatic\Bundle\DataBundle\Data\Driver\DoctrineDBAL\QueryExecutorFactory: + arguments: + - '@Imatic\Bundle\DataBundle\Data\Query\DisplayCriteria\DisplayCriteriaQueryBuilderDelegate' + - '@Imatic\Bundle\DataBundle\Data\Driver\DoctrineDBAL\ResultNormalizer\ResultNormalizerInterface' + - '@service_container' + + Imatic\Bundle\DataBundle\Data\Query\QueryExecutorDelegate: + arguments: + - '@Imatic\Bundle\DataBundle\Data\Driver\DoctrineDBAL\QueryExecutorFactory' + + Imatic\Bundle\DataBundle\Data\Driver\DoctrineDBAL\QueryExecutor: + factory: ['@Imatic\Bundle\DataBundle\Data\Driver\DoctrineDBAL\QueryExecutorFactory', createWithConnection] + + imatic_data.driver.doctrine_dbal: + class: Imatic\Bundle\DataBundle\Data\Driver\Driver + tags: + - { name: imatic_data.driver } + arguments: + - 'doctrine.dbal' + - '@Imatic\Bundle\DataBundle\Data\Query\QueryExecutorDelegate' + - 'Imatic\Bundle\DataBundle\Data\Driver\DoctrineDBAL\QueryObjectInterface' + + Imatic\Bundle\DataBundle\Data\Driver\DoctrineDBAL\Command\RecordIterator: + arguments: + - '@Imatic\Bundle\DataBundle\Data\Driver\DoctrineDBAL\QueryExecutor' + - '@Imatic\Bundle\DataBundle\Data\Driver\DoctrineDBAL\ResultIteratorFactory' + - '@?logger' + + Imatic\Bundle\DataBundle\Data\Driver\DoctrineDBAL\ResultIteratorFactory: + arguments: + - '@Imatic\Bundle\DataBundle\Data\Query\DisplayCriteria\ArrayDisplayCriteriaFactory' + - '@Imatic\Bundle\DataBundle\Data\Query\DisplayCriteria\FilterFactory' + - '@Imatic\Bundle\DataBundle\Data\Driver\DoctrineDBAL\QueryExecutor' + + # Handlers + Imatic\Bundle\DataBundle\Data\Driver\DoctrineDBAL\Command\CreateHandler: + tags: + - { name: imatic_data.handler } + arguments: + - '@database_connection' + - '@Imatic\Bundle\DataBundle\Data\Driver\DoctrineDBAL\Schema\Schema' + + Imatic\Bundle\DataBundle\Data\Driver\DoctrineDBAL\Command\EditHandler: + tags: + - { name: imatic_data.handler } + arguments: + - '@database_connection' + - '@Imatic\Bundle\DataBundle\Data\Driver\DoctrineDBAL\Schema\Schema' + + Imatic\Bundle\DataBundle\Data\Driver\DoctrineDBAL\Command\CreateOrEditHandler: + tags: + - { name: imatic_data.handler } + arguments: + - '@Imatic\Bundle\DataBundle\Data\Driver\DoctrineDBAL\QueryExecutor' + + Imatic\Bundle\DataBundle\Data\Driver\DoctrineDBAL\Command\DeleteHandler: + tags: + - { name: imatic_data.handler } + arguments: + - '@database_connection' + + Imatic\Bundle\DataBundle\Data\Driver\DoctrineDBAL\Command\SoftDeleteHandler: + tags: + - { name: imatic_data.handler } + arguments: + - '@Imatic\Bundle\DataBundle\Data\Driver\DoctrineDBAL\QueryExecutor' + + Imatic\Bundle\DataBundle\Data\Driver\DoctrineDBAL\ResultNormalizer\ResultNormalizer: + arguments: + - '@database_connection' + + Imatic\Bundle\DataBundle\Data\Driver\DoctrineDBAL\ResultNormalizer\ResultNormalizerInterface: + alias: Imatic\Bundle\DataBundle\Data\Driver\DoctrineDBAL\ResultNormalizer\ResultNormalizer diff --git a/config/data_doctrine_orm.xml b/config/data_doctrine_orm.xml deleted file mode 100644 index 01d04d3..0000000 --- a/config/data_doctrine_orm.xml +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - - - - - - - - - - - - - - doctrine.orm - - Imatic\Bundle\DataBundle\Data\Driver\DoctrineORM\QueryObjectInterface - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/data_doctrine_orm.yaml b/config/data_doctrine_orm.yaml new file mode 100644 index 0000000..f26a816 --- /dev/null +++ b/config/data_doctrine_orm.yaml @@ -0,0 +1,57 @@ +services: + _defaults: + public: false + + Imatic\Bundle\DataBundle\Data\Driver\DoctrineORM\ObjectManager: + arguments: + - '@doctrine' + + Imatic\Bundle\DataBundle\Data\ObjectManagerInterface: + alias: Imatic\Bundle\DataBundle\Data\Driver\DoctrineORM\ObjectManager + + Imatic\Bundle\DataBundle\Data\Driver\DoctrineORM\QueryExecutor: + arguments: + - '@doctrine' + - '@Imatic\Bundle\DataBundle\Data\Query\DisplayCriteria\DisplayCriteriaQueryBuilderDelegate' + + imatic_data.driver.doctrine_orm: + class: Imatic\Bundle\DataBundle\Data\Driver\Driver + tags: + - { name: imatic_data.driver } + arguments: + - 'doctrine.orm' + - '@Imatic\Bundle\DataBundle\Data\Driver\DoctrineORM\QueryExecutor' + - 'Imatic\Bundle\DataBundle\Data\Driver\DoctrineORM\QueryObjectInterface' + - '@Imatic\Bundle\DataBundle\Data\Driver\DoctrineORM\ObjectManager' + + Imatic\Bundle\DataBundle\Data\Driver\DoctrineORM\ResultIteratorFactory: + arguments: + - '@Imatic\Bundle\DataBundle\Data\Query\DisplayCriteria\ArrayDisplayCriteriaFactory' + - '@Imatic\Bundle\DataBundle\Data\Query\DisplayCriteria\FilterFactory' + - '@Imatic\Bundle\DataBundle\Data\Driver\DoctrineORM\QueryExecutor' + + Imatic\Bundle\DataBundle\Data\Driver\DoctrineORM\Command\RecordIterator: + arguments: + - '@Imatic\Bundle\DataBundle\Data\Driver\DoctrineORM\QueryExecutor' + - '@Imatic\Bundle\DataBundle\Data\Driver\DoctrineORM\ResultIteratorFactory' + - '@?logger' + + # Handlers + Imatic\Bundle\DataBundle\Data\Driver\DoctrineORM\Command\EditHandler: + tags: + - { name: imatic_data.handler } + arguments: + - '@Imatic\Bundle\DataBundle\Data\Driver\DoctrineORM\ObjectManager' + + Imatic\Bundle\DataBundle\Data\Driver\DoctrineORM\Command\CreateHandler: + tags: + - { name: imatic_data.handler } + arguments: + - '@Imatic\Bundle\DataBundle\Data\Driver\DoctrineORM\ObjectManager' + + Imatic\Bundle\DataBundle\Data\Driver\DoctrineORM\Command\DeleteHandler: + tags: + - { name: imatic_data.handler } + arguments: + - '@Imatic\Bundle\DataBundle\Data\Driver\DoctrineORM\ObjectManager' + - '@Imatic\Bundle\DataBundle\Data\Query\QueryExecutor' diff --git a/config/services.xml b/config/services.xml deleted file mode 100644 index ac986d9..0000000 --- a/config/services.xml +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/services.yaml b/config/services.yaml new file mode 100644 index 0000000..923d77a --- /dev/null +++ b/config/services.yaml @@ -0,0 +1,39 @@ +imports: + - { resource: data.yaml } + +services: + _defaults: + public: false + + Imatic\Bundle\DataBundle\Data\Query\DisplayCriteria\Reader\RequestQueryReader: + arguments: + - '@request_stack' + + Imatic\Bundle\DataBundle\Data\Query\DisplayCriteria\Reader\ExtJsReader: + arguments: + - '@request_stack' + + Imatic\Bundle\DataBundle\Data\Query\DisplayCriteria\DisplayCriteriaFactory: + arguments: + - '@Imatic\Bundle\DataBundle\Data\Query\DisplayCriteria\PagerFactory' + - '@form.factory' + - '@Imatic\Bundle\DataBundle\Data\Query\DisplayCriteria\Reader\DisplayCriteriaReader' + + Imatic\Bundle\DataBundle\Data\Query\DisplayCriteria\ArrayDisplayCriteriaFactory: + arguments: + - '@Imatic\Bundle\DataBundle\Data\Query\DisplayCriteria\PagerFactory' + - '@form.factory' + + Imatic\Bundle\DataBundle\Data\Query\DisplayCriteria\FilterFactory: + arguments: + - '@service_container' + + # Form types + Imatic\Bundle\DataBundle\Form\Type\Filter\ArrayRuleType: + tags: + - { name: form.type } + + # Form extensions + Imatic\Bundle\DataBundle\Form\Extension\EntityTypeQueryObjectExtension: + tags: + - { name: form.type_extension, extended-type: 'Symfony\Bridge\Doctrine\Form\Type\EntityType' } diff --git a/phpstan.neon.dist b/phpstan.neon.dist index 82d6030..6e451fa 100644 --- a/phpstan.neon.dist +++ b/phpstan.neon.dist @@ -2,6 +2,3 @@ parameters: level: 6 paths: - src - checkGenericClassInNonGenericObjectType: false - ignoreErrors: - - '#Call to an undefined method Symfony\\Component\\Config\\Definition\\Builder\\NodeDefinition::children\(\).#' diff --git a/src/Data/Driver/DoctrineCommon/FilterRuleProcessor/AbstractFilterRuleProcessor.php b/src/Data/Driver/DoctrineCommon/FilterRuleProcessor/AbstractFilterRuleProcessor.php index 63dfb0c..eceb9c7 100644 --- a/src/Data/Driver/DoctrineCommon/FilterRuleProcessor/AbstractFilterRuleProcessor.php +++ b/src/Data/Driver/DoctrineCommon/FilterRuleProcessor/AbstractFilterRuleProcessor.php @@ -25,7 +25,11 @@ public function process(object $qb, FilterRule $rule, $column): void $exprs[] = $this->processOneColumn($qb, $rule, $oneColumn); } - $qb->andWhere(\call_user_func_array([$qb->expr(), 'orX'], $exprs)); + $qb->andWhere( + $qb instanceof DBALQueryBuilder + ? $qb->expr()->or(...$exprs) + : $qb->expr()->orX(...$exprs) + ); } /** diff --git a/src/Data/Driver/DoctrineCommon/FilterRuleProcessor/BetweenOperatorProcessor.php b/src/Data/Driver/DoctrineCommon/FilterRuleProcessor/BetweenOperatorProcessor.php index add13df..d459b9b 100644 --- a/src/Data/Driver/DoctrineCommon/FilterRuleProcessor/BetweenOperatorProcessor.php +++ b/src/Data/Driver/DoctrineCommon/FilterRuleProcessor/BetweenOperatorProcessor.php @@ -1,6 +1,7 @@ setParameter($this->getQueryParameterName($rule) . 'End', $rule->getValue()['end'], $rule->getType()); } - return \call_user_func_array([$qb->expr(), 'andX'], $conditions); + return $conditions + ? ( + $qb instanceof DBALQueryBuilder + ? $qb->expr()->and(...$conditions) + : $qb->expr()->andX(...$conditions) + ) + : '1=1'; } public function supports(object $qb, FilterRule $rule, $column): bool diff --git a/src/Data/Driver/DoctrineCommon/FilterRuleProcessor/ContainsOperatorProcessor.php b/src/Data/Driver/DoctrineCommon/FilterRuleProcessor/ContainsOperatorProcessor.php index bf1c1bb..53d321b 100644 --- a/src/Data/Driver/DoctrineCommon/FilterRuleProcessor/ContainsOperatorProcessor.php +++ b/src/Data/Driver/DoctrineCommon/FilterRuleProcessor/ContainsOperatorProcessor.php @@ -1,6 +1,7 @@ setParameter($this->getQueryParameterName($rule), '%' . $rule->getValue() . '%', $rule->getType()); + $qb->setParameter( + $this->getQueryParameterName($rule), + '%' . $rule->getValue() . '%', + $rule->getType() ?? ParameterType::STRING + ); if (!$this->hasPostgresqlConnection($qb)) { return $qb->expr()->{$rule->getOperator()}( @@ -84,7 +89,7 @@ private function wrapColumn(object $qb, $column): string private function hasPostgresqlConnection(object $qb): bool { if ($qb instanceof DBALQueryBuilder) { - $connection = $qb->getConnection(); + $connection = \Closure::bind(fn () => $this->connection, $qb, DBALQueryBuilder::class)(); } elseif ($qb instanceof ORMQueryBuilder) { $connection = $qb->getEntityManager()->getConnection(); } else { diff --git a/src/Data/Driver/DoctrineCommon/FilterRuleProcessor/DefaultRuleProcessor.php b/src/Data/Driver/DoctrineCommon/FilterRuleProcessor/DefaultRuleProcessor.php index e165bfe..2e5052f 100644 --- a/src/Data/Driver/DoctrineCommon/FilterRuleProcessor/DefaultRuleProcessor.php +++ b/src/Data/Driver/DoctrineCommon/FilterRuleProcessor/DefaultRuleProcessor.php @@ -1,6 +1,8 @@ setParameter($this->getQueryParameterName($rule), $rule->getValue(), $rule->getType()); + $type = $rule->getType() ?? ( + \is_array($rule->getValue()) + ? ArrayParameterType::STRING + : ParameterType::STRING + ); + $qb->setParameter($this->getQueryParameterName($rule), $rule->getValue(), $type); return $qb->expr()->{$rule->getOperator()}($column, $this->getQueryParameter($rule)); } diff --git a/src/Data/Driver/DoctrineCommon/FilterRuleProcessor/NotBetweenOperatorProcessor.php b/src/Data/Driver/DoctrineCommon/FilterRuleProcessor/NotBetweenOperatorProcessor.php index 5518487..fdca893 100644 --- a/src/Data/Driver/DoctrineCommon/FilterRuleProcessor/NotBetweenOperatorProcessor.php +++ b/src/Data/Driver/DoctrineCommon/FilterRuleProcessor/NotBetweenOperatorProcessor.php @@ -1,6 +1,7 @@ setParameter($this->getQueryParameterName($rule) . 'End', $rule->getValue()['end'], $rule->getType()); } - return \call_user_func_array([$qb->expr(), 'orX'], $conditions); + return $conditions + ? ( + $qb instanceof DBALQueryBuilder + ? $qb->expr()->or(...$conditions) + : $qb->expr()->orX(...$conditions) + ) + : '1=1'; } public function supports(object $qb, FilterRule $rule, $column): bool diff --git a/src/Data/Driver/DoctrineDBAL/QueryExecutor.php b/src/Data/Driver/DoctrineDBAL/QueryExecutor.php index 8fef0de..aa9eea0 100644 --- a/src/Data/Driver/DoctrineDBAL/QueryExecutor.php +++ b/src/Data/Driver/DoctrineDBAL/QueryExecutor.php @@ -3,6 +3,7 @@ use Doctrine\DBAL\Connection; use Doctrine\DBAL\Exception; +use Doctrine\DBAL\Query\QueryBuilder as DBALQueryBuilder; use Doctrine\DBAL\Result; use Imatic\Bundle\DataBundle\Data\Driver\DoctrineDBAL\QueryObjectInterface as DoctrineDBALQueryObjectInterface; use Imatic\Bundle\DataBundle\Data\Driver\DoctrineDBAL\ResultNormalizer\ResultNormalizerInterface; @@ -47,13 +48,13 @@ public function count(BaseQueryObjectInterface $queryObject, ?DisplayCriteriaInt $count = '1'; - $groupByPart = $qb->getQueryPart('groupBy'); + $groupByPart = \Closure::bind(fn () => $this->sqlParts['groupBy'], $qb, DBALQueryBuilder::class)(); if ($groupByPart) { $count = \sprintf('DISTINCT(%s)', \implode(', ', $groupByPart)); - $qb->resetQueryPart('groupBy'); + $qb->resetGroupBy(); } - $qb->resetQueryPart('orderBy'); + $qb->resetOrderBy(); return $qb->select(\sprintf('COUNT(%s)', $count))->executeQuery()->fetchOne(); } diff --git a/src/Data/Driver/DoctrineDBAL/Schema/Schema.php b/src/Data/Driver/DoctrineDBAL/Schema/Schema.php index 6057cf9..5ffe094 100644 --- a/src/Data/Driver/DoctrineDBAL/Schema/Schema.php +++ b/src/Data/Driver/DoctrineDBAL/Schema/Schema.php @@ -3,6 +3,7 @@ use Doctrine\DBAL\Connection; use Doctrine\DBAL\Exception; +use Doctrine\DBAL\Platforms\AbstractPlatform; use Doctrine\DBAL\Schema\AbstractSchemaManager; use Doctrine\DBAL\Schema\Sequence; use Doctrine\DBAL\Schema\Table; @@ -12,6 +13,7 @@ */ class Schema { + /** @var AbstractSchemaManager|null */ private ?AbstractSchemaManager $schemaManager = null; private Connection $connection; @@ -142,6 +144,7 @@ private function findTableByName(string $tableName): Table throw new \InvalidArgumentException(\sprintf('Table with name "%s" does not exists.', $tableName)); } + /** @return AbstractSchemaManager */ private function getSchemaManager(): AbstractSchemaManager { if (null === $this->schemaManager) { diff --git a/src/Data/Driver/DoctrineORM/Paginator.php b/src/Data/Driver/DoctrineORM/Paginator.php index fcbe547..a3d43c3 100644 --- a/src/Data/Driver/DoctrineORM/Paginator.php +++ b/src/Data/Driver/DoctrineORM/Paginator.php @@ -21,6 +21,8 @@ * Copy / paste of original paginator with different output walkers. * * It extends the original paginator so that this one can be passed in all places original can. + * + * @extends DoctrinePaginator */ class Paginator extends DoctrinePaginator { diff --git a/src/Data/Driver/DoctrineORM/Paginator/Impl/AstUtil.php b/src/Data/Driver/DoctrineORM/Paginator/Impl/AstUtil.php index dfc9857..9f58e9d 100644 --- a/src/Data/Driver/DoctrineORM/Paginator/Impl/AstUtil.php +++ b/src/Data/Driver/DoctrineORM/Paginator/Impl/AstUtil.php @@ -36,7 +36,7 @@ private static function orderByRequiredAliases(SelectStatement $ast): array return \array_map( function (OrderByItem $obi) { if (!$obi->expression instanceof PathExpression) { - throw new LogicException(sprintf( + throw new LogicException(\sprintf( 'Expected expression of type "%s", got "%s".', PathExpression::class, \gettype($obi->expression) === 'object' ? \get_class($obi->expression) : \gettype($obi->expression) diff --git a/src/Data/Driver/DoctrineORM/QueryExecutor.php b/src/Data/Driver/DoctrineORM/QueryExecutor.php index 5f8e5d4..47a6ae1 100644 --- a/src/Data/Driver/DoctrineORM/QueryExecutor.php +++ b/src/Data/Driver/DoctrineORM/QueryExecutor.php @@ -28,6 +28,7 @@ public function __construct(ManagerRegistry $managerRegistry, DisplayCriteriaQue $this->displayCriteriaQueryBuilder = $displayCriteriaQueryBuilder; } + /** @return Paginator */ private function createPaginator(DoctrineORMQueryObjectInterface $queryObject, Query $query): Paginator { if ($queryObject instanceof ExperimentalOptimizationQueryObjectInterface) { @@ -105,7 +106,7 @@ public function getManager(?BaseQueryObjectInterface $queryObject = null): Entit if (!$manager instanceof EntityManager) { throw new \RuntimeException( - sprintf( + \sprintf( 'Only managers of type "%s" are supported. Instance of "%s given.', EntityManager::class, \get_class($manager) diff --git a/src/Data/Query/DisplayCriteria/Filter.php b/src/Data/Query/DisplayCriteria/Filter.php index faeac0d..5f034f5 100644 --- a/src/Data/Query/DisplayCriteria/Filter.php +++ b/src/Data/Query/DisplayCriteria/Filter.php @@ -110,18 +110,17 @@ public function setTranslationDomain($translationDomain): self return $this; } - public function offsetExists($offset): bool + public function offsetExists(mixed $offset): bool { return $this->has($offset); } - #[\ReturnTypeWillChange] - public function offsetGet($offset) + public function offsetGet(mixed $offset): mixed { return $this->get($offset); } - public function offsetSet($offset, $value): void + public function offsetSet(mixed $offset, mixed $value): void { if (!($value instanceof FilterRule) || $offset !== $value->getName()) { throw new \InvalidArgumentException('Value must be a instance of FilterRule and index must be same as rule name'); @@ -129,10 +128,7 @@ public function offsetSet($offset, $value): void $this->add($value); } - /** - * @param mixed $offset - */ - public function offsetUnset($offset): void + public function offsetUnset(mixed $offset): void { $this->remove($offset); } diff --git a/src/Data/Query/DisplayCriteria/FilterInterface.php b/src/Data/Query/DisplayCriteria/FilterInterface.php index 54986bb..6758345 100644 --- a/src/Data/Query/DisplayCriteria/FilterInterface.php +++ b/src/Data/Query/DisplayCriteria/FilterInterface.php @@ -3,6 +3,10 @@ use Symfony\Component\Form\FormInterface; +/** + * @extends \IteratorAggregate + * @extends \ArrayAccess + */ interface FilterInterface extends \IteratorAggregate, \Countable, \ArrayAccess { public function get(string $index): ?FilterRule; diff --git a/src/Data/Query/DisplayCriteria/SorterInterface.php b/src/Data/Query/DisplayCriteria/SorterInterface.php index 1627dd5..9dc1aa8 100644 --- a/src/Data/Query/DisplayCriteria/SorterInterface.php +++ b/src/Data/Query/DisplayCriteria/SorterInterface.php @@ -1,6 +1,7 @@ */ interface SorterInterface extends \IteratorAggregate, \Countable { public function hasSorterRules(): bool; diff --git a/src/Data/ResultIterator.php b/src/Data/ResultIterator.php index 879c885..a6dc770 100644 --- a/src/Data/ResultIterator.php +++ b/src/Data/ResultIterator.php @@ -10,6 +10,8 @@ /** * @author Miloslav Nenadal + * + * @implements Iterator */ class ResultIterator implements Iterator, \Countable { @@ -51,14 +53,12 @@ public function __construct( $this->criteria = $criteria; } - #[\ReturnTypeWillChange] - public function current() + public function current(): mixed { return $this->cache[$this->position % $this->getLimit()]; } - #[\ReturnTypeWillChange] - public function key() + public function key(): mixed { return $this->position; } diff --git a/src/DependencyInjection/Configuration.php b/src/DependencyInjection/Configuration.php index 617d9b6..693e822 100644 --- a/src/DependencyInjection/Configuration.php +++ b/src/DependencyInjection/Configuration.php @@ -11,7 +11,7 @@ */ class Configuration implements ConfigurationInterface { - public function getConfigTreeBuilder() + public function getConfigTreeBuilder(): TreeBuilder { $treeBuilder = new TreeBuilder('imatic_data'); $rootNode = $treeBuilder->getRootNode(); diff --git a/src/DependencyInjection/ImaticDataExtension.php b/src/DependencyInjection/ImaticDataExtension.php index 4fb4932..f3a9531 100644 --- a/src/DependencyInjection/ImaticDataExtension.php +++ b/src/DependencyInjection/ImaticDataExtension.php @@ -9,8 +9,8 @@ use Imatic\Bundle\DataBundle\DependencyInjection\Compiler\FilterCompilerPass; use Symfony\Component\Config\FileLocator; use Symfony\Component\DependencyInjection\ContainerBuilder; +use Symfony\Component\DependencyInjection\Extension\Extension; use Symfony\Component\DependencyInjection\Loader; -use Symfony\Component\HttpKernel\DependencyInjection\Extension; class ImaticDataExtension extends Extension { @@ -19,8 +19,8 @@ class ImaticDataExtension extends Extension */ public function load(array $configs, ContainerBuilder $container): void { - $loader = new Loader\XmlFileLoader($container, new FileLocator(__DIR__ . '/../../config')); - $loader->load('services.xml'); + $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__ . '/../../config')); + $loader->load('services.yaml'); $configuration = new Configuration(); $config = $this->processConfiguration($configuration, $configs); diff --git a/src/Doctrine/Common/Query/AST/Cast.php b/src/Doctrine/Common/Query/AST/Cast.php index 6ca2825..33bce82 100644 --- a/src/Doctrine/Common/Query/AST/Cast.php +++ b/src/Doctrine/Common/Query/AST/Cast.php @@ -34,7 +34,7 @@ public function parse(Parser $parser): void $parser->match(Lexer::T_COMMA); $parser->match(Lexer::T_IDENTIFIER); $lexer = $parser->getLexer(); - $this->typeString = $lexer->token['value']; + $this->typeString = $lexer->token->value; $parser->match(Lexer::T_CLOSE_PARENTHESIS); } } diff --git a/src/Form/DataTransformer/ArrayToStringTransformer.php b/src/Form/DataTransformer/ArrayToStringTransformer.php index 1697d7f..38bc252 100644 --- a/src/Form/DataTransformer/ArrayToStringTransformer.php +++ b/src/Form/DataTransformer/ArrayToStringTransformer.php @@ -3,9 +3,10 @@ use Symfony\Component\Form\DataTransformerInterface; +/** @implements DataTransformerInterface */ class ArrayToStringTransformer implements DataTransformerInterface { - public function reverseTransform($value) + public function reverseTransform(mixed $value): mixed { if ($value === null || $value === '') { return []; @@ -18,7 +19,7 @@ public function reverseTransform($value) return \array_map('trim', \explode(',', (string) $value)); } - public function transform($value) + public function transform(mixed $value): mixed { if (!$value) { return ''; diff --git a/tests/Fixtures/TestProject/ImaticDataBundle/DataFixtures/ORM/LoadOrderData.php b/tests/Fixtures/TestProject/ImaticDataBundle/DataFixtures/ORM/LoadOrderData.php index 0973016..cd25bd9 100644 --- a/tests/Fixtures/TestProject/ImaticDataBundle/DataFixtures/ORM/LoadOrderData.php +++ b/tests/Fixtures/TestProject/ImaticDataBundle/DataFixtures/ORM/LoadOrderData.php @@ -5,13 +5,14 @@ use Doctrine\Common\DataFixtures\DependentFixtureInterface; use Doctrine\Persistence\ObjectManager; use Imatic\Bundle\DataBundle\Tests\Fixtures\TestProject\ImaticDataBundle\Entity\Order; +use Imatic\Bundle\DataBundle\Tests\Fixtures\TestProject\ImaticDataBundle\Entity\User; /** * @author Miloslav Nenadal */ class LoadOrderData extends Fixture implements DependentFixtureInterface { - public function load(ObjectManager $manager) + public function load(ObjectManager $manager): void { $orders = [ LoadUserData::ADAM_REF => 3, @@ -20,14 +21,14 @@ public function load(ObjectManager $manager) foreach ($orders as $userRef => $orderCount) { for ($i = 0; $i < $orderCount; ++$i) { - $manager->persist(new Order($this->getReference($userRef))); + $manager->persist(new Order($this->getReference($userRef, User::class))); } } $manager->flush(); } - public function getDependencies() + public function getDependencies(): array { return [ 'Imatic\Bundle\DataBundle\Tests\Fixtures\TestProject\ImaticDataBundle\DataFixtures\ORM\LoadUserData', diff --git a/tests/Fixtures/TestProject/ImaticDataBundle/DataFixtures/ORM/LoadUnaccentLowerFunction.php b/tests/Fixtures/TestProject/ImaticDataBundle/DataFixtures/ORM/LoadUnaccentLowerFunction.php index 1910613..a4391f8 100644 --- a/tests/Fixtures/TestProject/ImaticDataBundle/DataFixtures/ORM/LoadUnaccentLowerFunction.php +++ b/tests/Fixtures/TestProject/ImaticDataBundle/DataFixtures/ORM/LoadUnaccentLowerFunction.php @@ -6,7 +6,7 @@ class LoadUnaccentLowerFunction extends Fixture { - public function load(ObjectManager $manager) + public function load(ObjectManager $manager): void { $manager->getConnection()->executeQuery( <<<'SQL' diff --git a/tests/Fixtures/TestProject/ImaticDataBundle/DataFixtures/ORM/LoadUserData.php b/tests/Fixtures/TestProject/ImaticDataBundle/DataFixtures/ORM/LoadUserData.php index 887ae16..0fe09ff 100644 --- a/tests/Fixtures/TestProject/ImaticDataBundle/DataFixtures/ORM/LoadUserData.php +++ b/tests/Fixtures/TestProject/ImaticDataBundle/DataFixtures/ORM/LoadUserData.php @@ -13,7 +13,7 @@ class LoadUserData extends Fixture const ADAM_REF = 'user-adam'; const EVA_REF = 'eva-ref'; - public function load(ObjectManager $manager) + public function load(ObjectManager $manager): void { $adam = new User(); $adam->setName('Adam'); diff --git a/tests/Fixtures/TestProject/ImaticDataBundle/DependencyInjection/AppImaticDataExtension.php b/tests/Fixtures/TestProject/ImaticDataBundle/DependencyInjection/AppImaticDataExtension.php index c75cdea..e1e610e 100644 --- a/tests/Fixtures/TestProject/ImaticDataBundle/DependencyInjection/AppImaticDataExtension.php +++ b/tests/Fixtures/TestProject/ImaticDataBundle/DependencyInjection/AppImaticDataExtension.php @@ -3,8 +3,8 @@ use Symfony\Component\Config\FileLocator; use Symfony\Component\DependencyInjection\ContainerBuilder; +use Symfony\Component\DependencyInjection\Extension\Extension; use Symfony\Component\DependencyInjection\Loader; -use Symfony\Component\HttpKernel\DependencyInjection\Extension; /** * @author Miloslav Nenadal @@ -15,7 +15,7 @@ class AppImaticDataExtension extends Extension * @param array $config * @param ContainerBuilder $container */ - public function load(array $config, ContainerBuilder $container) + public function load(array $config, ContainerBuilder $container): void { $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config')); $loader->load('services.yml'); diff --git a/tests/Fixtures/TestProject/ImaticDataBundle/Entity/Order.php b/tests/Fixtures/TestProject/ImaticDataBundle/Entity/Order.php index 84745fe..2030bf1 100644 --- a/tests/Fixtures/TestProject/ImaticDataBundle/Entity/Order.php +++ b/tests/Fixtures/TestProject/ImaticDataBundle/Entity/Order.php @@ -3,69 +3,37 @@ use Doctrine\ORM\Mapping as ORM; -/** - * @ORM\Entity - * - * @ORM\Table(name="test_user_order") - * - * @author Miloslav Nenadal - */ +#[ORM\Entity] +#[ORM\Table(name: 'test_user_order')] class Order { - /** - * @var int - * - * @ORM\Id() - * - * @ORM\GeneratedValue() - * - * @ORM\Column(type="integer") - */ + #[ORM\Id] + #[ORM\GeneratedValue(strategy: 'SEQUENCE')] + #[ORM\Column(type: 'integer')] private $id; - /** - * @var User - * - * @ORM\ManyToOne(targetEntity="User", inversedBy="orders") - * - * @ORM\JoinColumn(onDelete="CASCADE") - */ + #[ORM\ManyToOne(targetEntity: User::class, inversedBy: 'orders')] + #[ORM\JoinColumn(onDelete: 'CASCADE')] private $user; - /** - * @var \DateTime|null - * - * @ORM\Column(type="datetime", nullable=true) - */ + #[ORM\Column(type: 'datetime', nullable: true)] private $deletedAt; - /** - * @param User $user - */ public function __construct(User $user) { $this->user = $user; } - /** - * @return int - */ public function getId() { return $this->id; } - /** - * @return User - */ public function getUser() { return $this->user; } - /** - * @return \DateTime|null - */ public function getDeletedAt() { return $this->deletedAt; diff --git a/tests/Fixtures/TestProject/ImaticDataBundle/Entity/User.php b/tests/Fixtures/TestProject/ImaticDataBundle/Entity/User.php index 294722c..ee82550 100644 --- a/tests/Fixtures/TestProject/ImaticDataBundle/Entity/User.php +++ b/tests/Fixtures/TestProject/ImaticDataBundle/Entity/User.php @@ -4,100 +4,51 @@ use Doctrine\Common\Collections\Collection; use Doctrine\ORM\Mapping as ORM; -/** - * @ORM\Entity - * - * @ORM\Table(name="test_user") - * - * @author Miloslav Nenadal - */ +#[ORM\Entity] +#[ORM\Table(name: 'test_user')] class User { - /** - * @var int - * - * @ORM\Id() - * - * @ORM\GeneratedValue() - * - * @ORM\Column(type="integer") - */ + #[ORM\Id] + #[ORM\GeneratedValue(strategy: 'SEQUENCE')] + #[ORM\Column(type: 'integer')] private $id; - /** - * @ORM\Column(type="string") - */ + #[ORM\Column(type: 'string')] private $name; - /** - * @var bool - * - * @ORM\Column(type="boolean", options={"default" = 0}) - */ + #[ORM\Column(type: 'boolean', options: ['default' => 0])] private $activated = true; - /** - * @var \DateTime - * - * @ORM\Column(type="datetime", nullable=true) - */ + #[ORM\Column(type: 'datetime', nullable: true)] private $birthDate; - /** - * @var \DateTime - * - * @ORM\Column(type="date", nullable=true) - */ + #[ORM\Column(type: 'date', nullable: true)] private $favoriteDay; - /** - * @var \Datetime - * - * @ORM\Column(type="time", nullable=true) - */ + #[ORM\Column(type: 'time', nullable: true)] private $favoriteTime; - /** - * @var string - * - * @ORM\Column(type="string", nullable=true) - */ + #[ORM\Column(type: 'string', nullable: true)] private $hairs; - /** - * @var Order[]|Collection - * - * @ORM\OneToMany(targetEntity="Order", mappedBy="user") - */ + #[ORM\OneToMany(targetEntity: Order::class, mappedBy: 'user')] private $orders; - /** - * @return int - */ public function getId() { return $this->id; } - /** - * @return string - */ public function getName() { return $this->name; } - /** - * @param string $name - */ public function setName($name) { $this->name = $name; } - /** - * @return bool - */ public function isActivated() { return $this->activated; @@ -113,18 +64,12 @@ public function deactivate() $this->activated = false; } - /** - * @return \DateTime - */ public function getBirthDate() { return $this->birthDate; } - /** - * @param \DateTime $birthDate - */ - public function setBirthDate(\DateTime $birthDate = null) + public function setBirthDate(?\DateTime $birthDate = null) { $this->birthDate = $birthDate; } @@ -139,27 +84,21 @@ public function getFavoriteTime() return $this->favoriteTime; } - public function setFavoriteDay(\DateTime $favoriteDay = null) + public function setFavoriteDay(?\DateTime $favoriteDay = null) { $this->favoriteDay = $favoriteDay; } - public function setFavoriteTime(\Datetime $favoriteTime = null) + public function setFavoriteTime(?\Datetime $favoriteTime = null) { $this->favoriteTime = $favoriteTime; } - /** - * @return string - */ public function getHairs() { return $this->hairs; } - /** - * @param string|null $hairs - */ public function setHairs($hairs) { $this->hairs = $hairs; diff --git a/tests/Fixtures/TestProject/ImaticDataBundle/Query/UserListWithOrderNumbersQuery.php b/tests/Fixtures/TestProject/ImaticDataBundle/Query/UserListWithOrderNumbersQuery.php index 334700b..5c18c3f 100644 --- a/tests/Fixtures/TestProject/ImaticDataBundle/Query/UserListWithOrderNumbersQuery.php +++ b/tests/Fixtures/TestProject/ImaticDataBundle/Query/UserListWithOrderNumbersQuery.php @@ -6,6 +6,7 @@ use Imatic\Bundle\DataBundle\Data\Driver\DoctrineORM\QueryObjectInterface; use Imatic\Bundle\DataBundle\Data\Query\DisplayCriteria\SortableQueryObjectInterface; use Imatic\Bundle\DataBundle\Data\Query\ResultQueryObjectInterface; +use Imatic\Bundle\DataBundle\Tests\Fixtures\TestProject\ImaticDataBundle\Entity\Order; use Imatic\Bundle\DataBundle\Tests\Fixtures\TestProject\ImaticDataBundle\Entity\User; /** @@ -18,7 +19,7 @@ public function build(EntityManager $em): QueryBuilder return (new QueryBuilder($em)) ->from(User::class, 'u') ->select('u, COUNT(o.id) order_num') - ->join('AppImaticDataBundle:Order', 'o', 'WITH', 'u.id = o.user') + ->join(Order::class, 'o', 'WITH', 'u.id = o.user') ->groupBy('u.id'); } diff --git a/tests/Fixtures/TestProject/config/config.yml b/tests/Fixtures/TestProject/config/config.yml index 7614572..4562ce8 100644 --- a/tests/Fixtures/TestProject/config/config.yml +++ b/tests/Fixtures/TestProject/config/config.yml @@ -1,7 +1,7 @@ imports: - - { resource: '@ImaticDataBundle/config/data_doctrine.xml' } - - { resource: '@ImaticDataBundle/config/data_doctrine_orm.xml' } - - { resource: '@ImaticDataBundle/config/data_doctrine_dbal.xml' } + - { resource: '@ImaticDataBundle/config/data_doctrine.yaml' } + - { resource: '@ImaticDataBundle/config/data_doctrine_orm.yaml' } + - { resource: '@ImaticDataBundle/config/data_doctrine_dbal.yaml' } parameters: env(DATABASE_URL): '' @@ -20,14 +20,15 @@ framework: csrf_protection: true validation: enabled: true - enable_annotations: true translator: enabled: true router: utf8: true resource: '%kernel.project_dir%/config/routing.yml' default_locale: cs_CZ - profiler: { only_exceptions: false } + profiler: + only_exceptions: false + collect_serializer_data: true property_access: ~ twig: @@ -48,6 +49,7 @@ doctrine: orm: auto_generate_proxy_classes: '%kernel.debug%' auto_mapping: true + report_fields_where_declared: true resolve_target_entities: [] naming_strategy: doctrine.orm.naming_strategy.underscore_number_aware dql: @@ -88,5 +90,3 @@ security: services: _defaults: public: true - annotation_reader: - class: Doctrine\Common\Annotations\AnnotationReader From 9a34fd301ac315201d18c757cdefba8ffe6e1a3b Mon Sep 17 00:00:00 2001 From: Jaroslav S Date: Wed, 3 Jun 2026 03:18:15 +0200 Subject: [PATCH 3/8] symfony-8.1 fixed deprecations for symfony 7.4 --- .../Data/Driver/DoctrineDBAL/Command/DeleteHandlerTest.php | 4 ++-- tests/Unit/Command/QueryObjectQueryCommandTest.php | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/tests/Integration/Data/Driver/DoctrineDBAL/Command/DeleteHandlerTest.php b/tests/Integration/Data/Driver/DoctrineDBAL/Command/DeleteHandlerTest.php index 01ee7c5..fead0b8 100644 --- a/tests/Integration/Data/Driver/DoctrineDBAL/Command/DeleteHandlerTest.php +++ b/tests/Integration/Data/Driver/DoctrineDBAL/Command/DeleteHandlerTest.php @@ -41,8 +41,8 @@ private function findUserCount($id) ->from('test_user', 'u') ->andWhere('u.id = :id') ->setParameter('id', $id) - ->execute() - ->fetch()['count']; + ->executeQuery() + ->fetchOne(); } /** diff --git a/tests/Unit/Command/QueryObjectQueryCommandTest.php b/tests/Unit/Command/QueryObjectQueryCommandTest.php index 50f23e5..afd5d40 100644 --- a/tests/Unit/Command/QueryObjectQueryCommandTest.php +++ b/tests/Unit/Command/QueryObjectQueryCommandTest.php @@ -21,7 +21,7 @@ public function testCommandShouldShouldPrintResultOfQueryObject() $queryObjectQueryCommand = new QueryObjectQueryCommand($this->queryExecutorMock); $application = new Application(); - $application->add($queryObjectQueryCommand); + $application->addCommand($queryObjectQueryCommand); $command = $application->find('imatic:data:query-object-query'); $commandTester = new CommandTester($command); @@ -38,7 +38,7 @@ public function testCommandShouldShouldPrintResultOfQueryObjectWithRequiredArgum $queryObjectQueryCommand = new QueryObjectQueryCommand($this->queryExecutorMock); $application = new Application(); - $application->add($queryObjectQueryCommand); + $application->addCommand($queryObjectQueryCommand); $command = $application->find('imatic:data:query-object-query'); $commandTester = new CommandTester($command); @@ -59,7 +59,7 @@ public function testCommandShouldThrowExceptionIfArgumentIsNotPassedToQueryObjec $queryObjectQueryCommand = new QueryObjectQueryCommand($this->queryExecutorMock); $application = new Application(); - $application->add($queryObjectQueryCommand); + $application->addCommand($queryObjectQueryCommand); $command = $application->find('imatic:data:query-object-query'); $commandTester = new CommandTester($command); From 7646aae73f9ef5ab424a9d8c63c0b401eb4421db Mon Sep 17 00:00:00 2001 From: Jaroslav S Date: Thu, 4 Jun 2026 15:45:21 +0200 Subject: [PATCH 4/8] symfony-8.1 fixed deprecations for symfony 7.4 --- composer.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/composer.json b/composer.json index b0c2d02..975f2ea 100644 --- a/composer.json +++ b/composer.json @@ -20,7 +20,7 @@ "ext-json": "*", "doctrine/dbal": "^3.0", "doctrine/doctrine-bundle": "^2.0", - "symfony/framework-bundle": "^7.0" + "symfony/framework-bundle": "^7.4" }, "require-dev": { "doctrine/doctrine-fixtures-bundle": "^3.0", @@ -30,10 +30,10 @@ "imatic/testing": "^6.1.0", "mikey179/vfsstream": "^1.4", "phpstan/phpstan": "^1.8", - "symfony/browser-kit": "^7.0", + "symfony/browser-kit": "^7.4", "symfony/phpunit-bridge": "^4.4 || ^5.0 || ^6.2", - "symfony/security-bundle": "^7.0", - "symfony/yaml": "^7.0" + "symfony/security-bundle": "^7.4", + "symfony/yaml": "^7.4" }, "suggest": { "doctrine/dbal": "*", From 90796a07671c79af653bb127558f998b894c2fd6 Mon Sep 17 00:00:00 2001 From: Jaroslav S Date: Thu, 4 Jun 2026 18:43:26 +0200 Subject: [PATCH 5/8] symfony-8.1 fixed deprecations --- .gitignore | 1 + .php-cs-fixer.dist.php | 1 + composer.json | 24 +++++++------- phpunit.xml.dist | 31 ++++++++----------- src/Command/QueryObjectQueryCommand.php | 3 +- .../InNotInOperatorProcessor.php | 11 +++---- .../DoctrineDBAL/Query/SoftDeleteQuery.php | 9 +++--- .../Driver/DoctrineDBAL/QueryExecutor.php | 2 +- .../ResultNormalizer/ResultNormalizer.php | 2 +- .../Driver/DoctrineDBAL/Schema/Schema.php | 3 +- src/Data/Driver/DoctrineDBAL/Sql/Sql.php | 4 +-- src/Data/Driver/DoctrineORM/Paginator.php | 6 ++-- .../Paginator/CountOutputWalker.php | 19 ++++-------- .../Impl/RequiredAliasConditionParser.php | 4 --- .../Paginator/LimitSubqueryOutputWalker.php | 19 ++++-------- src/Data/Query/DisplayCriteria/Filter.php | 1 + .../DisplayCriteria/Filter/DateRangeRule.php | 2 +- .../Compiler/CommandHandlerCompilerPass.php | 3 -- .../Compiler/FilterCompilerPass.php | 3 -- src/Doctrine/Common/Query/AST/Cast.php | 12 +++---- src/Doctrine/Common/Query/AST/Overlaps.php | 14 ++++----- .../Common/Query/AST/UnaccentLower.php | 8 ++--- src/Doctrine/Postgresql/Query/AST/ILike.php | 10 +++--- .../Postgresql/Query/AST/JsonbExists.php | 10 +++--- .../Postgresql/Query/AST/JsonbExistsAny.php | 10 +++--- .../Postgresql/Query/AST/NotILike.php | 10 +++--- tests/Fixtures/TestProject/config/config.yml | 2 -- .../Command/RecordIteratorTest.php | 11 +++---- .../Command/SoftDeleteHandlerTest.php | 4 +-- .../Query/SoftDeleteQueryTest.php | 4 +-- .../Driver/DoctrineDBAL/QueryExecutorTest.php | 7 ++--- .../Command/RecordIteratorTest.php | 11 +++---- .../Driver/DoctrineDBAL/Type/FileTypeTest.php | 12 +++---- .../DisplayCriteriaFactoryTest.php | 8 ++--- .../DisplayCriteria/Filter/TextRuleTest.php | 13 +++----- .../Reader/ExtJsReaderTest.php | 4 +-- .../ArrayToStringTransformerTest.php | 13 +++----- tests/bootstrap.php | 5 ++- 38 files changed, 135 insertions(+), 181 deletions(-) diff --git a/.gitignore b/.gitignore index d92e953..8ead24e 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,4 @@ Thumbs.db tests/Fixtures/TestProject/var +tests/Fixtures/TestProject/config/reference.php diff --git a/.php-cs-fixer.dist.php b/.php-cs-fixer.dist.php index 5fae041..dce4646 100644 --- a/.php-cs-fixer.dist.php +++ b/.php-cs-fixer.dist.php @@ -83,6 +83,7 @@ 'vendor', 'tests/Fixtures/TestProject/var', ]) + ->notPath('tests/Fixtures/TestProject/config/reference.php') ->in(__DIR__) ) ; diff --git a/composer.json b/composer.json index 975f2ea..8396dd9 100644 --- a/composer.json +++ b/composer.json @@ -16,24 +16,24 @@ } ], "require": { - "php": "^7.4 || ^8.0", + "php": "^8.5", "ext-json": "*", - "doctrine/dbal": "^3.0", - "doctrine/doctrine-bundle": "^2.0", - "symfony/framework-bundle": "^7.4" + "doctrine/dbal": "^4.0", + "doctrine/doctrine-bundle": "^3.2", + "symfony/framework-bundle": "^8.1" }, "require-dev": { - "doctrine/doctrine-fixtures-bundle": "^3.0", - "doctrine/orm": "^2.15", - "friendsofphp/php-cs-fixer": "^3.2.1", + "doctrine/doctrine-fixtures-bundle": "^4.0", + "doctrine/orm": "^3.0", + "friendsofphp/php-cs-fixer": "^3.75", "imatic/form-bundle": "^5.3.0", "imatic/testing": "^6.1.0", "mikey179/vfsstream": "^1.4", - "phpstan/phpstan": "^1.8", - "symfony/browser-kit": "^7.4", - "symfony/phpunit-bridge": "^4.4 || ^5.0 || ^6.2", - "symfony/security-bundle": "^7.4", - "symfony/yaml": "^7.4" + "phpstan/phpstan": "^2.0", + "symfony/browser-kit": "^8.1", + "symfony/phpunit-bridge": "^8.1", + "symfony/security-bundle": "^8.1", + "symfony/yaml": "^8.1" }, "suggest": { "doctrine/dbal": "*", diff --git a/phpunit.xml.dist b/phpunit.xml.dist index ec32085..c9e50c2 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -1,31 +1,26 @@ ./tests/ - - - - + + + - + - - - - - - + ./ @@ -33,5 +28,5 @@ ./tests ./vendor - + diff --git a/src/Command/QueryObjectQueryCommand.php b/src/Command/QueryObjectQueryCommand.php index 0b6172a..858c0e2 100644 --- a/src/Command/QueryObjectQueryCommand.php +++ b/src/Command/QueryObjectQueryCommand.php @@ -1,7 +1,6 @@ queryExecutor->execute($queryObject); - $output->writeln(Debug::dump($result, 2, false, false)); + $output->writeln(\var_export($result, true)); return Command::SUCCESS; } diff --git a/src/Data/Driver/DoctrineCommon/FilterRuleProcessor/InNotInOperatorProcessor.php b/src/Data/Driver/DoctrineCommon/FilterRuleProcessor/InNotInOperatorProcessor.php index 190b5e4..a004096 100644 --- a/src/Data/Driver/DoctrineCommon/FilterRuleProcessor/InNotInOperatorProcessor.php +++ b/src/Data/Driver/DoctrineCommon/FilterRuleProcessor/InNotInOperatorProcessor.php @@ -1,7 +1,7 @@ getOperator(), [FilterOperatorMap::OPERATOR_IN, FilterOperatorMap::OPERATOR_NOT_IN], true); } - /** - * @return int|string|null - */ - private function getType(FilterRule $rule) + private function getType(FilterRule $rule): ArrayParameterType|string|null { $value = $rule->getValue(); if ($rule->getType() || !\is_array($value)) { @@ -31,7 +28,7 @@ private function getType(FilterRule $rule) } return \count(\array_filter($value, 'is_numeric')) === \count($value) - ? Connection::PARAM_INT_ARRAY - : Connection::PARAM_STR_ARRAY; + ? ArrayParameterType::INTEGER + : ArrayParameterType::STRING; } } diff --git a/src/Data/Driver/DoctrineDBAL/Query/SoftDeleteQuery.php b/src/Data/Driver/DoctrineDBAL/Query/SoftDeleteQuery.php index cf95df4..8ab27ac 100644 --- a/src/Data/Driver/DoctrineDBAL/Query/SoftDeleteQuery.php +++ b/src/Data/Driver/DoctrineDBAL/Query/SoftDeleteQuery.php @@ -1,6 +1,7 @@ ids, 'is_numeric')) === \count($this->ids) - ? Connection::PARAM_INT_ARRAY - : Connection::PARAM_STR_ARRAY; + ? ArrayParameterType::INTEGER + : ArrayParameterType::STRING; return $connection->createQueryBuilder() - ->update($connection->quoteIdentifier($this->table), 't') + ->update($connection->quoteIdentifier($this->table)) ->set('deleted_at', 'NOW()') - ->where('t.id IN(:id)') + ->where('id IN(:id)') ->setParameter('id', $this->ids, $idsType); } } diff --git a/src/Data/Driver/DoctrineDBAL/QueryExecutor.php b/src/Data/Driver/DoctrineDBAL/QueryExecutor.php index aa9eea0..1737ffc 100644 --- a/src/Data/Driver/DoctrineDBAL/QueryExecutor.php +++ b/src/Data/Driver/DoctrineDBAL/QueryExecutor.php @@ -48,7 +48,7 @@ public function count(BaseQueryObjectInterface $queryObject, ?DisplayCriteriaInt $count = '1'; - $groupByPart = \Closure::bind(fn () => $this->sqlParts['groupBy'], $qb, DBALQueryBuilder::class)(); + $groupByPart = (new \ReflectionProperty(DBALQueryBuilder::class, 'groupBy'))->getValue($qb); if ($groupByPart) { $count = \sprintf('DISTINCT(%s)', \implode(', ', $groupByPart)); $qb->resetGroupBy(); diff --git a/src/Data/Driver/DoctrineDBAL/ResultNormalizer/ResultNormalizer.php b/src/Data/Driver/DoctrineDBAL/ResultNormalizer/ResultNormalizer.php index 0d9b7c5..52af6e7 100644 --- a/src/Data/Driver/DoctrineDBAL/ResultNormalizer/ResultNormalizer.php +++ b/src/Data/Driver/DoctrineDBAL/ResultNormalizer/ResultNormalizer.php @@ -36,7 +36,7 @@ public function normalize(QueryObjectInterface $queryObject, Result $result): ar return array_map(function (array $row) use ($map, $platform) { foreach ($row as $key => $value) { if (\array_key_exists($key, $map)) { - $row[$key] = Type::getType($platform->getDoctrineTypeMapping($map[$key]))->convertToPHPValue($value, $platform); + $row[$key] = Type::getType($map[$key])->convertToPHPValue($value, $platform); } } return $row; diff --git a/src/Data/Driver/DoctrineDBAL/Schema/Schema.php b/src/Data/Driver/DoctrineDBAL/Schema/Schema.php index 5ffe094..6ccc871 100644 --- a/src/Data/Driver/DoctrineDBAL/Schema/Schema.php +++ b/src/Data/Driver/DoctrineDBAL/Schema/Schema.php @@ -7,6 +7,7 @@ use Doctrine\DBAL\Schema\AbstractSchemaManager; use Doctrine\DBAL\Schema\Sequence; use Doctrine\DBAL\Schema\Table; +use Doctrine\DBAL\Types\Type; /** * @author Miloslav Nenadal @@ -74,7 +75,7 @@ public function getColumnTypes(string $table): array $columnTypes = []; foreach ($columns as $column) { - $columnTypes[$column->getName()] = $column->getType()->getName(); + $columnTypes[$column->getName()] = Type::getTypeRegistry()->lookupName($column->getType()); } if (!isset($this->overwrittenColumnTypes[$table])) { diff --git a/src/Data/Driver/DoctrineDBAL/Sql/Sql.php b/src/Data/Driver/DoctrineDBAL/Sql/Sql.php index 8c1ad95..a27db8a 100644 --- a/src/Data/Driver/DoctrineDBAL/Sql/Sql.php +++ b/src/Data/Driver/DoctrineDBAL/Sql/Sql.php @@ -3,7 +3,7 @@ use Doctrine\DBAL\Connection; use Doctrine\DBAL\Exception; -use Doctrine\DBAL\Platforms\SqlitePlatform; +use Doctrine\DBAL\Platforms\SQLitePlatform; /** * @author Miloslav Nenadal @@ -18,7 +18,7 @@ class Sql public static function concat(array $args, Connection $connection): string { switch (\get_class($connection->getDatabasePlatform())) { - case SqlitePlatform::class: + case SQLitePlatform::class: return \implode(' || ', $args); default: return \sprintf('CONCAT(%s)', \implode(', ', $args)); diff --git a/src/Data/Driver/DoctrineORM/Paginator.php b/src/Data/Driver/DoctrineORM/Paginator.php index a3d43c3..e44b146 100644 --- a/src/Data/Driver/DoctrineORM/Paginator.php +++ b/src/Data/Driver/DoctrineORM/Paginator.php @@ -79,7 +79,7 @@ public function getUseOutputWalkers(): ?bool * * @param bool|null $useOutputWalkers */ - public function setUseOutputWalkers($useOutputWalkers): self + public function setUseOutputWalkers($useOutputWalkers): static { $this->useOutputWalkers = $useOutputWalkers; @@ -132,7 +132,7 @@ public function getIterator(): \Traversable $this->appendTreeWalker($whereInQuery, WhereInWalker::class); $whereInQuery->setHint(WhereInWalker::HINT_PAGINATOR_HAS_IDS, \count($ids)); - $whereInQuery->setFirstResult(null)->setMaxResults(null); + $whereInQuery->setFirstResult(0)->setMaxResults(null); $whereInQuery->setParameter(WhereInWalker::PAGINATOR_ID_ALIAS, $ids); $whereInQuery->setCacheable($this->query->isCacheable()); @@ -225,7 +225,7 @@ private function getCountQuery(): Query $this->unbindUnusedQueryParams($countQuery); } - $countQuery->setFirstResult(null)->setMaxResults(null); + $countQuery->setFirstResult(0)->setMaxResults(null); return $countQuery; } diff --git a/src/Data/Driver/DoctrineORM/Paginator/CountOutputWalker.php b/src/Data/Driver/DoctrineORM/Paginator/CountOutputWalker.php index b76147e..66e694b 100644 --- a/src/Data/Driver/DoctrineORM/Paginator/CountOutputWalker.php +++ b/src/Data/Driver/DoctrineORM/Paginator/CountOutputWalker.php @@ -1,28 +1,21 @@ queryComponents = $queryComponents; - + function __construct( + Query $query, ParserResult $parserResult, private readonly array $queryComponents + ) { parent::__construct($query, $parserResult, $queryComponents); } - public function walkSelectStatement(SelectStatement $ast): string + function walkSelectStatement(SelectStatement $ast): string { AstUtil::trim($ast, $this->queryComponents); diff --git a/src/Data/Driver/DoctrineORM/Paginator/Impl/RequiredAliasConditionParser.php b/src/Data/Driver/DoctrineORM/Paginator/Impl/RequiredAliasConditionParser.php index 79589d3..8bc1a28 100644 --- a/src/Data/Driver/DoctrineORM/Paginator/Impl/RequiredAliasConditionParser.php +++ b/src/Data/Driver/DoctrineORM/Paginator/Impl/RequiredAliasConditionParser.php @@ -6,7 +6,6 @@ use Doctrine\ORM\Query\AST\ConditionalExpression; use Doctrine\ORM\Query\AST\ConditionalPrimary; use Doctrine\ORM\Query\AST\ConditionalTerm; -use Doctrine\ORM\Query\AST\InExpression; use Doctrine\ORM\Query\AST\InListExpression; use Doctrine\ORM\Query\AST\InputParameter; use Doctrine\ORM\Query\AST\InSubselectExpression; @@ -61,9 +60,6 @@ function ($expr) { self::parse($expr->rightExpression) ); }, - InExpression::class => function (InExpression $expr): array { - return self::parse($expr->expression->simpleArithmeticExpression); - }, InListExpression::class => function (InListExpression $expr): array { return self::parse($expr->expression->simpleArithmeticExpression); }, diff --git a/src/Data/Driver/DoctrineORM/Paginator/LimitSubqueryOutputWalker.php b/src/Data/Driver/DoctrineORM/Paginator/LimitSubqueryOutputWalker.php index 04229e4..f21e037 100644 --- a/src/Data/Driver/DoctrineORM/Paginator/LimitSubqueryOutputWalker.php +++ b/src/Data/Driver/DoctrineORM/Paginator/LimitSubqueryOutputWalker.php @@ -1,28 +1,21 @@ queryComponents = $queryComponents; - + function __construct( + Query $query, ParserResult $parserResult, private readonly array $queryComponents + ) { parent::__construct($query, $parserResult, $queryComponents); } - public function walkSelectStatementWithRowNumber(SelectStatement $AST): string + function walkSelectStatementWithRowNumber(SelectStatement $AST): string { AstUtil::trim($AST, $this->queryComponents); diff --git a/src/Data/Query/DisplayCriteria/Filter.php b/src/Data/Query/DisplayCriteria/Filter.php index 5f034f5..679d267 100644 --- a/src/Data/Query/DisplayCriteria/Filter.php +++ b/src/Data/Query/DisplayCriteria/Filter.php @@ -122,6 +122,7 @@ public function offsetGet(mixed $offset): mixed public function offsetSet(mixed $offset, mixed $value): void { + // @phpstan-ignore-next-line if (!($value instanceof FilterRule) || $offset !== $value->getName()) { throw new \InvalidArgumentException('Value must be a instance of FilterRule and index must be same as rule name'); } diff --git a/src/Data/Query/DisplayCriteria/Filter/DateRangeRule.php b/src/Data/Query/DisplayCriteria/Filter/DateRangeRule.php index 3eee3d0..93a2ce7 100644 --- a/src/Data/Query/DisplayCriteria/Filter/DateRangeRule.php +++ b/src/Data/Query/DisplayCriteria/Filter/DateRangeRule.php @@ -22,7 +22,7 @@ public function setValue($value): self public function ruleValue($value = null) { $args = \func_get_args(); - $result = \call_user_func_array(parent::class . '::ruleValue', $args); + $result = parent::ruleValue(...$args); $this->updateValue(); return $result; diff --git a/src/DependencyInjection/Compiler/CommandHandlerCompilerPass.php b/src/DependencyInjection/Compiler/CommandHandlerCompilerPass.php index a5e9462..1ef8bdb 100644 --- a/src/DependencyInjection/Compiler/CommandHandlerCompilerPass.php +++ b/src/DependencyInjection/Compiler/CommandHandlerCompilerPass.php @@ -15,9 +15,6 @@ class CommandHandlerCompilerPass implements CompilerPassInterface { public const HANDLER_TAG = 'imatic_data.handler'; - /** - * @SuppressWarnings(PHPMD.UnusedLocalVariables) - */ public function process(ContainerBuilder $container): void { $repository = $container->getDefinition(HandlerRepository::class); diff --git a/src/DependencyInjection/Compiler/FilterCompilerPass.php b/src/DependencyInjection/Compiler/FilterCompilerPass.php index 08fc694..8e60959 100644 --- a/src/DependencyInjection/Compiler/FilterCompilerPass.php +++ b/src/DependencyInjection/Compiler/FilterCompilerPass.php @@ -11,9 +11,6 @@ class FilterCompilerPass implements CompilerPassInterface { public const FILTER_TAG = 'imatic_data.filter'; - /** - * @SuppressWarnings(PHPMD.UnusedLocalVariables) - */ public function process(ContainerBuilder $container): void { $factory = $container->findDefinition(FilterFactory::class); diff --git a/src/Doctrine/Common/Query/AST/Cast.php b/src/Doctrine/Common/Query/AST/Cast.php index 33bce82..ebc8513 100644 --- a/src/Doctrine/Common/Query/AST/Cast.php +++ b/src/Doctrine/Common/Query/AST/Cast.php @@ -3,9 +3,9 @@ use Doctrine\ORM\Query\AST\Functions\FunctionNode; use Doctrine\ORM\Query\AST\Node; -use Doctrine\ORM\Query\Lexer; use Doctrine\ORM\Query\Parser; use Doctrine\ORM\Query\SqlWalker; +use Doctrine\ORM\Query\TokenType; class Cast extends FunctionNode { @@ -27,14 +27,14 @@ public function getSql(SqlWalker $sqlWalker): string public function parse(Parser $parser): void { - $parser->match(Lexer::T_IDENTIFIER); + $parser->match(TokenType::T_IDENTIFIER); - $parser->match(Lexer::T_OPEN_PARENTHESIS); + $parser->match(TokenType::T_OPEN_PARENTHESIS); $this->valueExpression = $parser->ArithmeticPrimary(); - $parser->match(Lexer::T_COMMA); - $parser->match(Lexer::T_IDENTIFIER); + $parser->match(TokenType::T_COMMA); + $parser->match(TokenType::T_IDENTIFIER); $lexer = $parser->getLexer(); $this->typeString = $lexer->token->value; - $parser->match(Lexer::T_CLOSE_PARENTHESIS); + $parser->match(TokenType::T_CLOSE_PARENTHESIS); } } diff --git a/src/Doctrine/Common/Query/AST/Overlaps.php b/src/Doctrine/Common/Query/AST/Overlaps.php index 95ac5b4..9b4b218 100644 --- a/src/Doctrine/Common/Query/AST/Overlaps.php +++ b/src/Doctrine/Common/Query/AST/Overlaps.php @@ -3,9 +3,9 @@ use Doctrine\ORM\Query\AST\Functions\FunctionNode; use Doctrine\ORM\Query\AST\Node; -use Doctrine\ORM\Query\Lexer; use Doctrine\ORM\Query\Parser; use Doctrine\ORM\Query\SqlWalker; +use Doctrine\ORM\Query\TokenType; class Overlaps extends FunctionNode { @@ -42,16 +42,16 @@ public function getSql(SqlWalker $sqlWalker): string public function parse(Parser $parser): void { - $parser->match(Lexer::T_IDENTIFIER); + $parser->match(TokenType::T_IDENTIFIER); - $parser->match(Lexer::T_OPEN_PARENTHESIS); + $parser->match(TokenType::T_OPEN_PARENTHESIS); $this->firstDateExpression = $parser->ArithmeticPrimary(); - $parser->match(Lexer::T_COMMA); + $parser->match(TokenType::T_COMMA); $this->secondDateExpression = $parser->ArithmeticPrimary(); - $parser->match(Lexer::T_COMMA); + $parser->match(TokenType::T_COMMA); $this->thirdDateExpression = $parser->ArithmeticPrimary(); - $parser->match(Lexer::T_COMMA); + $parser->match(TokenType::T_COMMA); $this->fourthDateExpression = $parser->ArithmeticPrimary(); - $parser->match(Lexer::T_CLOSE_PARENTHESIS); + $parser->match(TokenType::T_CLOSE_PARENTHESIS); } } diff --git a/src/Doctrine/Common/Query/AST/UnaccentLower.php b/src/Doctrine/Common/Query/AST/UnaccentLower.php index 408e00c..974df58 100644 --- a/src/Doctrine/Common/Query/AST/UnaccentLower.php +++ b/src/Doctrine/Common/Query/AST/UnaccentLower.php @@ -2,9 +2,9 @@ namespace Imatic\Bundle\DataBundle\Doctrine\Common\Query\AST; use Doctrine\ORM\Query\AST\Functions\FunctionNode; -use Doctrine\ORM\Query\Lexer; use Doctrine\ORM\Query\Parser; use Doctrine\ORM\Query\SqlWalker; +use Doctrine\ORM\Query\TokenType; class UnaccentLower extends FunctionNode { @@ -22,12 +22,12 @@ public function getSql(SqlWalker $sqlWalker): string public function parse(Parser $parser): void { - $parser->match(Lexer::T_IDENTIFIER); - $parser->match(Lexer::T_OPEN_PARENTHESIS); + $parser->match(TokenType::T_IDENTIFIER); + $parser->match(TokenType::T_OPEN_PARENTHESIS); $this->stringPrimary = $parser->ArithmeticPrimary(); - $parser->match(Lexer::T_CLOSE_PARENTHESIS); + $parser->match(TokenType::T_CLOSE_PARENTHESIS); } public static function setFunction(string $function): void diff --git a/src/Doctrine/Postgresql/Query/AST/ILike.php b/src/Doctrine/Postgresql/Query/AST/ILike.php index 4aa1c7f..9939747 100644 --- a/src/Doctrine/Postgresql/Query/AST/ILike.php +++ b/src/Doctrine/Postgresql/Query/AST/ILike.php @@ -3,9 +3,9 @@ use Doctrine\ORM\Query\AST\Functions\FunctionNode; use Doctrine\ORM\Query\AST\Node; -use Doctrine\ORM\Query\Lexer; use Doctrine\ORM\Query\Parser; use Doctrine\ORM\Query\SqlWalker; +use Doctrine\ORM\Query\TokenType; class ILike extends FunctionNode { @@ -26,15 +26,15 @@ public function getSql(SqlWalker $sqlWalker): string public function parse(Parser $parser): void { - $parser->match(Lexer::T_IDENTIFIER); - $parser->match(Lexer::T_OPEN_PARENTHESIS); + $parser->match(TokenType::T_IDENTIFIER); + $parser->match(TokenType::T_OPEN_PARENTHESIS); $this->field = $parser->ArithmeticPrimary(); - $parser->match(Lexer::T_COMMA); + $parser->match(TokenType::T_COMMA); $this->value = $parser->ArithmeticPrimary(); - $parser->match(Lexer::T_CLOSE_PARENTHESIS); + $parser->match(TokenType::T_CLOSE_PARENTHESIS); } } diff --git a/src/Doctrine/Postgresql/Query/AST/JsonbExists.php b/src/Doctrine/Postgresql/Query/AST/JsonbExists.php index bfd42c1..ceef1e4 100644 --- a/src/Doctrine/Postgresql/Query/AST/JsonbExists.php +++ b/src/Doctrine/Postgresql/Query/AST/JsonbExists.php @@ -3,9 +3,9 @@ use Doctrine\ORM\Query\AST\Functions\FunctionNode; use Doctrine\ORM\Query\AST\Node; -use Doctrine\ORM\Query\Lexer; use Doctrine\ORM\Query\Parser; use Doctrine\ORM\Query\SqlWalker; +use Doctrine\ORM\Query\TokenType; class JsonbExists extends FunctionNode { @@ -23,14 +23,14 @@ class JsonbExists extends FunctionNode public function parse(Parser $parser): void { - $parser->match(Lexer::T_IDENTIFIER); - $parser->match(Lexer::T_OPEN_PARENTHESIS); + $parser->match(TokenType::T_IDENTIFIER); + $parser->match(TokenType::T_OPEN_PARENTHESIS); $this->field = $parser->ArithmeticPrimary(); - $parser->match(Lexer::T_COMMA); + $parser->match(TokenType::T_COMMA); $this->value = $parser->ArithmeticPrimary(); - $parser->match(Lexer::T_CLOSE_PARENTHESIS); + $parser->match(TokenType::T_CLOSE_PARENTHESIS); } public function getSql(SqlWalker $sqlWalker): string diff --git a/src/Doctrine/Postgresql/Query/AST/JsonbExistsAny.php b/src/Doctrine/Postgresql/Query/AST/JsonbExistsAny.php index 9fe9398..0729de3 100644 --- a/src/Doctrine/Postgresql/Query/AST/JsonbExistsAny.php +++ b/src/Doctrine/Postgresql/Query/AST/JsonbExistsAny.php @@ -3,9 +3,9 @@ use Doctrine\ORM\Query\AST\Functions\FunctionNode; use Doctrine\ORM\Query\AST\Node; -use Doctrine\ORM\Query\Lexer; use Doctrine\ORM\Query\Parser; use Doctrine\ORM\Query\SqlWalker; +use Doctrine\ORM\Query\TokenType; class JsonbExistsAny extends FunctionNode { @@ -23,14 +23,14 @@ class JsonbExistsAny extends FunctionNode public function parse(Parser $parser): void { - $parser->match(Lexer::T_IDENTIFIER); - $parser->match(Lexer::T_OPEN_PARENTHESIS); + $parser->match(TokenType::T_IDENTIFIER); + $parser->match(TokenType::T_OPEN_PARENTHESIS); $this->field = $parser->ArithmeticPrimary(); - $parser->match(Lexer::T_COMMA); + $parser->match(TokenType::T_COMMA); $this->value = $parser->ArithmeticPrimary(); - $parser->match(Lexer::T_CLOSE_PARENTHESIS); + $parser->match(TokenType::T_CLOSE_PARENTHESIS); } public function getSql(SqlWalker $sqlWalker): string diff --git a/src/Doctrine/Postgresql/Query/AST/NotILike.php b/src/Doctrine/Postgresql/Query/AST/NotILike.php index ae2b8df..85a0e38 100644 --- a/src/Doctrine/Postgresql/Query/AST/NotILike.php +++ b/src/Doctrine/Postgresql/Query/AST/NotILike.php @@ -3,9 +3,9 @@ use Doctrine\ORM\Query\AST\Functions\FunctionNode; use Doctrine\ORM\Query\AST\Node; -use Doctrine\ORM\Query\Lexer; use Doctrine\ORM\Query\Parser; use Doctrine\ORM\Query\SqlWalker; +use Doctrine\ORM\Query\TokenType; class NotILike extends FunctionNode { @@ -26,15 +26,15 @@ public function getSql(SqlWalker $sqlWalker): string public function parse(Parser $parser): void { - $parser->match(Lexer::T_IDENTIFIER); - $parser->match(Lexer::T_OPEN_PARENTHESIS); + $parser->match(TokenType::T_IDENTIFIER); + $parser->match(TokenType::T_OPEN_PARENTHESIS); $this->field = $parser->ArithmeticPrimary(); - $parser->match(Lexer::T_COMMA); + $parser->match(TokenType::T_COMMA); $this->value = $parser->ArithmeticPrimary(); - $parser->match(Lexer::T_CLOSE_PARENTHESIS); + $parser->match(TokenType::T_CLOSE_PARENTHESIS); } } diff --git a/tests/Fixtures/TestProject/config/config.yml b/tests/Fixtures/TestProject/config/config.yml index 4562ce8..638993c 100644 --- a/tests/Fixtures/TestProject/config/config.yml +++ b/tests/Fixtures/TestProject/config/config.yml @@ -47,9 +47,7 @@ doctrine: server_version: '%env(DATABASE_VERSION)%' orm: - auto_generate_proxy_classes: '%kernel.debug%' auto_mapping: true - report_fields_where_declared: true resolve_target_entities: [] naming_strategy: doctrine.orm.naming_strategy.underscore_number_aware dql: diff --git a/tests/Integration/Data/Driver/DoctrineDBAL/Command/RecordIteratorTest.php b/tests/Integration/Data/Driver/DoctrineDBAL/Command/RecordIteratorTest.php index 7992717..8d6b60c 100644 --- a/tests/Integration/Data/Driver/DoctrineDBAL/Command/RecordIteratorTest.php +++ b/tests/Integration/Data/Driver/DoctrineDBAL/Command/RecordIteratorTest.php @@ -9,6 +9,7 @@ use Imatic\Bundle\DataBundle\Tests\Fixtures\TestProject\ImaticDataBundle\Data\Filter\User\UserFilter; use Imatic\Bundle\DataBundle\Tests\Fixtures\TestProject\ImaticDataBundle\Query\DBAL\UserListQuery; use Imatic\Bundle\DataBundle\Tests\Fixtures\TestProject\WebTestCase; +use PHPUnit\Framework\Attributes\DataProvider; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\RequestStack; @@ -31,9 +32,7 @@ protected function setUp(): void $this->requestStack = self::getContainer()->get('request_stack'); } - /** - * @dataProvider selectedProvider - */ + #[DataProvider('selectedProvider')] public function testIteratorShouldIterateThroughAllRecordIdentifiersGivenFromSelectedOption($selected) { $command = new Command('unusedHandler', [ @@ -52,9 +51,7 @@ public function testIteratorShouldIterateThroughAllRecordIdentifiersGivenFromSel $this->assertEquals($selected, $ids); } - /** - * @dataProvider selectedProvider - */ + #[DataProvider('selectedProvider')] public function testIteratorShouldIterateThroughAllRecordsGivenFromSelectedOption($selected) { $command = new Command('unusedHandler', [ @@ -83,7 +80,7 @@ function (array $user) { $this->assertEquals($selected, $ids); } - public function selectedProvider() + public static function selectedProvider() { return [ [[1]], diff --git a/tests/Integration/Data/Driver/DoctrineDBAL/Command/SoftDeleteHandlerTest.php b/tests/Integration/Data/Driver/DoctrineDBAL/Command/SoftDeleteHandlerTest.php index 037165d..a481018 100644 --- a/tests/Integration/Data/Driver/DoctrineDBAL/Command/SoftDeleteHandlerTest.php +++ b/tests/Integration/Data/Driver/DoctrineDBAL/Command/SoftDeleteHandlerTest.php @@ -1,7 +1,7 @@ from('test_user_order', 'r') ->where('r.id IN (:ids)') ->andWhere('r.deleted_at IS NULL') - ->setParameter('ids', $ids, Connection::PARAM_INT_ARRAY) + ->setParameter('ids', $ids, ArrayParameterType::INTEGER) ->executeQuery() ->fetchAllAssociative(); } diff --git a/tests/Integration/Data/Driver/DoctrineDBAL/Query/SoftDeleteQueryTest.php b/tests/Integration/Data/Driver/DoctrineDBAL/Query/SoftDeleteQueryTest.php index e624041..af63578 100644 --- a/tests/Integration/Data/Driver/DoctrineDBAL/Query/SoftDeleteQueryTest.php +++ b/tests/Integration/Data/Driver/DoctrineDBAL/Query/SoftDeleteQueryTest.php @@ -1,7 +1,7 @@ from('test_user_order', 'r') ->where('r.id IN (:ids)') ->andWhere('r.deleted_at IS NULL') - ->setParameter('ids', $ids, Connection::PARAM_INT_ARRAY) + ->setParameter('ids', $ids, ArrayParameterType::INTEGER) ->executeQuery() ->fetchAllAssociative(); } diff --git a/tests/Integration/Data/Driver/DoctrineDBAL/QueryExecutorTest.php b/tests/Integration/Data/Driver/DoctrineDBAL/QueryExecutorTest.php index 5e3d9bc..5f43336 100644 --- a/tests/Integration/Data/Driver/DoctrineDBAL/QueryExecutorTest.php +++ b/tests/Integration/Data/Driver/DoctrineDBAL/QueryExecutorTest.php @@ -20,6 +20,7 @@ use Imatic\Bundle\DataBundle\Tests\Fixtures\TestProject\ImaticDataBundle\Query\DBAL\UsernameQuery; use Imatic\Bundle\DataBundle\Tests\Fixtures\TestProject\ImaticDataBundle\Query\DBAL\UserQuery; use Imatic\Bundle\DataBundle\Tests\Fixtures\TestProject\WebTestCase; +use PHPUnit\Framework\Attributes\DataProvider; /** * @author Miloslav Nenadal @@ -169,9 +170,7 @@ public function testQueryExecutorShouldReturnSortedResultsDescByAggregatedField( $this->assertEquals('Adam', $results[1]['name']); } - /** - * @dataProvider adamFilterRulesProvider - */ + #[DataProvider('adamFilterRulesProvider')] public function testQueryExecutorshouldReturnAdamBasedOnFilterRule(FilterRule $rule) { $filter = new UserFilter(); @@ -184,7 +183,7 @@ public function testQueryExecutorshouldReturnAdamBasedOnFilterRule(FilterRule $r $this->assertEquals('Adam', $results[0]['name']); } - public function adamFilterRulesProvider() + public static function adamFilterRulesProvider() { $dateBirthdayRule = new DateRangeRule('birthDate'); $dateBirthdayRule->setValue([ diff --git a/tests/Integration/Data/Driver/DoctrineORM/Command/RecordIteratorTest.php b/tests/Integration/Data/Driver/DoctrineORM/Command/RecordIteratorTest.php index 40a365f..7cd421e 100644 --- a/tests/Integration/Data/Driver/DoctrineORM/Command/RecordIteratorTest.php +++ b/tests/Integration/Data/Driver/DoctrineORM/Command/RecordIteratorTest.php @@ -10,6 +10,7 @@ use Imatic\Bundle\DataBundle\Tests\Fixtures\TestProject\ImaticDataBundle\Entity\User; use Imatic\Bundle\DataBundle\Tests\Fixtures\TestProject\ImaticDataBundle\Query\UserListQuery; use Imatic\Bundle\DataBundle\Tests\Fixtures\TestProject\WebTestCase; +use PHPUnit\Framework\Attributes\DataProvider; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\RequestStack; @@ -31,9 +32,7 @@ protected function setUp(): void $this->requestStack = self::getContainer()->get('request_stack'); } - /** - * @dataProvider selectedProvider - */ + #[DataProvider('selectedProvider')] public function testIteratorShouldIterateThroughAllRecordIdentifiersGivenFromSelectedOption($selected) { $command = new Command('unusedHandler', [ @@ -56,9 +55,7 @@ public function testIteratorShouldIterateThroughAllRecordIdentifiersGivenFromSel $this->assertEquals($selected, $ids); } - /** - * @dataProvider selectedProvider - */ + #[DataProvider('selectedProvider')] public function testIteratorShouldIterateThroughAllRecordsGivenFromSelectedOption($selected) { $command = new Command('unusedHandler', [ @@ -88,7 +85,7 @@ function (User $user) { $this->assertEquals($selected, $ids); } - public function selectedProvider() + public static function selectedProvider() { return [ [[1]], diff --git a/tests/Unit/Data/Driver/DoctrineDBAL/Type/FileTypeTest.php b/tests/Unit/Data/Driver/DoctrineDBAL/Type/FileTypeTest.php index 02cdc95..d1e0161 100644 --- a/tests/Unit/Data/Driver/DoctrineDBAL/Type/FileTypeTest.php +++ b/tests/Unit/Data/Driver/DoctrineDBAL/Type/FileTypeTest.php @@ -1,10 +1,12 @@ platform = $this->getMockBuilder('Doctrine\DBAL\Platforms\AbstractPlatform') - ->disableOriginalConstructor() - ->getMockForAbstractClass(); + $this->platform = new SQLitePlatform(); if (Type::hasType('file')) { Type::overrideType('file', 'Imatic\Bundle\DataBundle\Data\Driver\DoctrineDBAL\Type\FileType'); @@ -35,9 +35,7 @@ protected function setUp(): void FileType::setBasePath(''); } - /** - * @dataProvider filePathProvider - */ + #[DataProvider('filePathProvider')] public function testPathsShouldBePreservedInDatabaseIfBasePathIsNotSpecified($givenPath) { $file = new File($givenPath, false); @@ -46,7 +44,7 @@ public function testPathsShouldBePreservedInDatabaseIfBasePathIsNotSpecified($gi $this->assertEquals($givenPath, $actual); } - public function filePathProvider() + public static function filePathProvider() { return [ ['file.txt'], diff --git a/tests/Unit/Data/Query/DisplayCriteria/DisplayCriteriaFactoryTest.php b/tests/Unit/Data/Query/DisplayCriteria/DisplayCriteriaFactoryTest.php index 25db619..a08cd4d 100644 --- a/tests/Unit/Data/Query/DisplayCriteria/DisplayCriteriaFactoryTest.php +++ b/tests/Unit/Data/Query/DisplayCriteria/DisplayCriteriaFactoryTest.php @@ -28,18 +28,18 @@ protected function setUp(): void $requestStack ->expects($this->any()) ->method('getCurrentRequest') - ->will($this->returnCallback(function () { + ->willReturnCallback(function () { return $this->currentRequest; - })); + }); $pagerFactory = $this->createMock('Imatic\Bundle\DataBundle\Data\Query\DisplayCriteria\PagerFactory'); $pagerFactory ->expects($this->any()) ->method('createPager') - ->will($this->returnCallback(function ($page, $limit) { + ->willReturnCallback(function ($page, $limit) { return new Pager($page, $limit); - })); + }); $formFactory = Forms::createFormFactoryBuilder()->getFormFactory(); diff --git a/tests/Unit/Data/Query/DisplayCriteria/Filter/TextRuleTest.php b/tests/Unit/Data/Query/DisplayCriteria/Filter/TextRuleTest.php index 4f0e67c..395146a 100644 --- a/tests/Unit/Data/Query/DisplayCriteria/Filter/TextRuleTest.php +++ b/tests/Unit/Data/Query/DisplayCriteria/Filter/TextRuleTest.php @@ -3,13 +3,12 @@ use Imatic\Bundle\DataBundle\Data\Query\DisplayCriteria\Filter\TextRule; use Imatic\Bundle\DataBundle\Data\Query\DisplayCriteria\FilterOperatorMap; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; class TextRuleTest extends TestCase { - /** - * @dataProvider operatorNotRequiringValueProvider - */ + #[DataProvider('operatorNotRequiringValueProvider')] public function testRuleShouldBeBoundWhenValueIsNotSetAndOperatorDoesntRequireIt($operator) { $textRule = new TextRule('name'); @@ -19,7 +18,7 @@ public function testRuleShouldBeBoundWhenValueIsNotSetAndOperatorDoesntRequireIt $this->assertTrue($textRule->isBound()); } - public function operatorNotRequiringValueProvider() + public static function operatorNotRequiringValueProvider() { return [ [FilterOperatorMap::OPERATOR_EMPTY], @@ -27,9 +26,7 @@ public function operatorNotRequiringValueProvider() ]; } - /** - * @dataProvider operatorRequiringValueProvider - */ + #[DataProvider('operatorRequiringValueProvider')] public function testRuleShouldBeBoundAfterValueIsSetWhenOperatorRequiresValue($operator) { $textRule = new TextRule('name'); @@ -41,7 +38,7 @@ public function testRuleShouldBeBoundAfterValueIsSetWhenOperatorRequiresValue($o $this->assertTrue($textRule->isBound()); } - public function operatorRequiringValueProvider() + public static function operatorRequiringValueProvider() { return [ [FilterOperatorMap::OPERATOR_EQUAL], diff --git a/tests/Unit/Data/Query/DisplayCriteria/Reader/ExtJsReaderTest.php b/tests/Unit/Data/Query/DisplayCriteria/Reader/ExtJsReaderTest.php index 6811901..1c67622 100644 --- a/tests/Unit/Data/Query/DisplayCriteria/Reader/ExtJsReaderTest.php +++ b/tests/Unit/Data/Query/DisplayCriteria/Reader/ExtJsReaderTest.php @@ -22,9 +22,9 @@ protected function setUp(): void $requestStack ->expects($this->any()) ->method('getCurrentRequest') - ->will($this->returnCallback(function () { + ->willReturnCallback(function () { return $this->currentRequest; - })); + }); $this->requestStack = $requestStack; } diff --git a/tests/Unit/Form/DataTransformer/ArrayToStringTransformerTest.php b/tests/Unit/Form/DataTransformer/ArrayToStringTransformerTest.php index 6ec5043..effba12 100644 --- a/tests/Unit/Form/DataTransformer/ArrayToStringTransformerTest.php +++ b/tests/Unit/Form/DataTransformer/ArrayToStringTransformerTest.php @@ -2,20 +2,19 @@ namespace Imatic\Bundle\DataBundle\Tests\Unit\Form\DataTransformer; use Imatic\Bundle\DataBundle\Form\DataTransformer\ArrayToStringTransformer; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; class ArrayToStringTransformerTest extends TestCase { - /** - * @dataProvider reverseTransformDataProvider - */ + #[DataProvider('reverseTransformDataProvider')] public function testReverseTransform($value, $expectedValue) { $transformer = new ArrayToStringTransformer(); $this->assertEquals($expectedValue, $transformer->reverseTransform($value)); } - public function reverseTransformDataProvider(): array + public static function reverseTransformDataProvider(): array { return [ [ @@ -45,16 +44,14 @@ public function reverseTransformDataProvider(): array ]; } - /** - * @dataProvider transformDataProvider - */ + #[DataProvider('transformDataProvider')] public function testTransform($value, $expectedValue) { $transformer = new ArrayToStringTransformer(); $this->assertEquals($expectedValue, $transformer->transform($value)); } - public function transformDataProvider(): array + public static function transformDataProvider(): array { return [ [ diff --git a/tests/bootstrap.php b/tests/bootstrap.php index 06fdcb4..bc59560 100644 --- a/tests/bootstrap.php +++ b/tests/bootstrap.php @@ -1,5 +1,4 @@ - Date: Fri, 5 Jun 2026 13:41:35 +0200 Subject: [PATCH 6/8] symfony-8.1 fixed deprecations --- src/Data/Driver/DoctrineDBAL/Schema/Schema.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/Data/Driver/DoctrineDBAL/Schema/Schema.php b/src/Data/Driver/DoctrineDBAL/Schema/Schema.php index 6ccc871..2fb7f6a 100644 --- a/src/Data/Driver/DoctrineDBAL/Schema/Schema.php +++ b/src/Data/Driver/DoctrineDBAL/Schema/Schema.php @@ -75,7 +75,12 @@ public function getColumnTypes(string $table): array $columnTypes = []; foreach ($columns as $column) { - $columnTypes[$column->getName()] = Type::getTypeRegistry()->lookupName($column->getType()); + $typeName = Type::getTypeRegistry()->lookupName($column->getType()); + $comment = $column->getComment(); + if ($comment !== '' && preg_match('/\(DC2Type:([^)]+)\)/', $comment, $matches)) { + $typeName = $matches[1]; + } + $columnTypes[$column->getName()] = $typeName; } if (!isset($this->overwrittenColumnTypes[$table])) { From c5e52804526692059eaf9239f786a27dc8fe7713 Mon Sep 17 00:00:00 2001 From: Jaroslav S Date: Wed, 10 Jun 2026 13:24:16 +0200 Subject: [PATCH 7/8] symfony-8.1 fixes for phpcs --- .../Driver/DoctrineORM/Paginator/CountOutputWalker.php | 8 +++++--- .../DoctrineORM/Paginator/LimitSubqueryOutputWalker.php | 8 +++++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/Data/Driver/DoctrineORM/Paginator/CountOutputWalker.php b/src/Data/Driver/DoctrineORM/Paginator/CountOutputWalker.php index 66e694b..cd59aca 100644 --- a/src/Data/Driver/DoctrineORM/Paginator/CountOutputWalker.php +++ b/src/Data/Driver/DoctrineORM/Paginator/CountOutputWalker.php @@ -9,13 +9,15 @@ class CountOutputWalker extends DoctrineWalker { - function __construct( - Query $query, ParserResult $parserResult, private readonly array $queryComponents + public function __construct( + Query $query, + ParserResult $parserResult, + private readonly array $queryComponents ) { parent::__construct($query, $parserResult, $queryComponents); } - function walkSelectStatement(SelectStatement $ast): string + public function walkSelectStatement(SelectStatement $ast): string { AstUtil::trim($ast, $this->queryComponents); diff --git a/src/Data/Driver/DoctrineORM/Paginator/LimitSubqueryOutputWalker.php b/src/Data/Driver/DoctrineORM/Paginator/LimitSubqueryOutputWalker.php index f21e037..f4e4173 100644 --- a/src/Data/Driver/DoctrineORM/Paginator/LimitSubqueryOutputWalker.php +++ b/src/Data/Driver/DoctrineORM/Paginator/LimitSubqueryOutputWalker.php @@ -9,13 +9,15 @@ class LimitSubqueryOutputWalker extends DoctrineWalker { - function __construct( - Query $query, ParserResult $parserResult, private readonly array $queryComponents + public function __construct( + Query $query, + ParserResult $parserResult, + private readonly array $queryComponents ) { parent::__construct($query, $parserResult, $queryComponents); } - function walkSelectStatementWithRowNumber(SelectStatement $AST): string + public function walkSelectStatementWithRowNumber(SelectStatement $AST): string { AstUtil::trim($AST, $this->queryComponents); From e1fde30b52c24141c574094cb8c43f2f300464ab Mon Sep 17 00:00:00 2001 From: Jaroslav S Date: Wed, 10 Jun 2026 13:24:35 +0200 Subject: [PATCH 8/8] symfony-8.1: updated composer.lock --- composer.json | 4 +- composer.lock | 5198 +++++++++++++++++++++++++++++-------------------- 2 files changed, 3035 insertions(+), 2167 deletions(-) diff --git a/composer.json b/composer.json index 8396dd9..0b34433 100644 --- a/composer.json +++ b/composer.json @@ -26,8 +26,8 @@ "doctrine/doctrine-fixtures-bundle": "^4.0", "doctrine/orm": "^3.0", "friendsofphp/php-cs-fixer": "^3.75", - "imatic/form-bundle": "^5.3.0", - "imatic/testing": "^6.1.0", + "imatic/form-bundle": "dev-symfony-8.1", + "imatic/testing": "dev-symfony-8.1", "mikey179/vfsstream": "^1.4", "phpstan/phpstan": "^2.0", "symfony/browser-kit": "^8.1", diff --git a/composer.lock b/composer.lock index 42c721b..c01696d 100644 --- a/composer.lock +++ b/composer.lock @@ -4,144 +4,44 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "366b49ddbd0f87a37bc43b2c5766f0c3", + "content-hash": "4cda2ddb952ca1fa83669002372faa36", "packages": [ - { - "name": "doctrine/cache", - "version": "2.2.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/cache.git", - "reference": "1ca8f21980e770095a31456042471a57bc4c68fb" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/cache/zipball/1ca8f21980e770095a31456042471a57bc4c68fb", - "reference": "1ca8f21980e770095a31456042471a57bc4c68fb", - "shasum": "" - }, - "require": { - "php": "~7.1 || ^8.0" - }, - "conflict": { - "doctrine/common": ">2.2,<2.4" - }, - "require-dev": { - "cache/integration-tests": "dev-master", - "doctrine/coding-standard": "^9", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "psr/cache": "^1.0 || ^2.0 || ^3.0", - "symfony/cache": "^4.4 || ^5.4 || ^6", - "symfony/var-exporter": "^4.4 || ^5.4 || ^6" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache" - } - }, - "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 Cache library is a popular cache implementation that supports many different drivers such as redis, memcache, apc, mongodb and others.", - "homepage": "https://www.doctrine-project.org/projects/cache.html", - "keywords": [ - "abstraction", - "apcu", - "cache", - "caching", - "couchdb", - "memcached", - "php", - "redis", - "xcache" - ], - "support": { - "issues": "https://github.com/doctrine/cache/issues", - "source": "https://github.com/doctrine/cache/tree/2.2.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%2Fcache", - "type": "tidelift" - } - ], - "time": "2022-05-20T20:07:39+00:00" - }, { "name": "doctrine/dbal", - "version": "3.6.6", + "version": "4.4.3", "source": { "type": "git", "url": "https://github.com/doctrine/dbal.git", - "reference": "63646ffd71d1676d2f747f871be31b7e921c7864" + "reference": "61e730f1658814821a85f2402c945f3883407dec" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/63646ffd71d1676d2f747f871be31b7e921c7864", - "reference": "63646ffd71d1676d2f747f871be31b7e921c7864", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/61e730f1658814821a85f2402c945f3883407dec", + "reference": "61e730f1658814821a85f2402c945f3883407dec", "shasum": "" }, "require": { - "composer-runtime-api": "^2", - "doctrine/cache": "^1.11|^2.0", - "doctrine/deprecations": "^0.5.3|^1", - "doctrine/event-manager": "^1|^2", - "php": "^7.4 || ^8.0", + "doctrine/deprecations": "^1.1.5", + "php": "^8.2", "psr/cache": "^1|^2|^3", "psr/log": "^1|^2|^3" }, "require-dev": { - "doctrine/coding-standard": "12.0.0", + "doctrine/coding-standard": "14.0.0", "fig/log-test": "^1", - "jetbrains/phpstorm-stubs": "2023.1", - "phpstan/phpstan": "1.10.29", - "phpstan/phpstan-strict-rules": "^1.5", - "phpunit/phpunit": "9.6.9", - "psalm/plugin-phpunit": "0.18.4", - "slevomat/coding-standard": "8.13.1", - "squizlabs/php_codesniffer": "3.7.2", - "symfony/cache": "^5.4|^6.0", - "symfony/console": "^4.4|^5.4|^6.0", - "vimeo/psalm": "4.30.0" + "jetbrains/phpstorm-stubs": "2023.2", + "phpstan/phpstan": "2.1.30", + "phpstan/phpstan-phpunit": "2.0.7", + "phpstan/phpstan-strict-rules": "^2", + "phpunit/phpunit": "11.5.50", + "slevomat/coding-standard": "8.27.1", + "squizlabs/php_codesniffer": "4.0.1", + "symfony/cache": "^6.3.8|^7.0|^8.0", + "symfony/console": "^5.4|^6.3|^7.0|^8.0" }, "suggest": { "symfony/console": "For helpful console commands such as SQL execution and import of files." }, - "bin": [ - "bin/doctrine-dbal" - ], "type": "library", "autoload": { "psr-4": { @@ -194,7 +94,7 @@ ], "support": { "issues": "https://github.com/doctrine/dbal/issues", - "source": "https://github.com/doctrine/dbal/tree/3.6.6" + "source": "https://github.com/doctrine/dbal/tree/4.4.3" }, "funding": [ { @@ -210,33 +110,34 @@ "type": "tidelift" } ], - "time": "2023-08-17T05:38:17+00:00" + "time": "2026-03-20T08:52:12+00:00" }, { "name": "doctrine/deprecations", - "version": "1.1.2", + "version": "1.1.6", "source": { "type": "git", "url": "https://github.com/doctrine/deprecations.git", - "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931" + "reference": "d4fe3e6fd9bb9e72557a19674f44d8ac7db4c6ca" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/deprecations/zipball/4f2d4f2836e7ec4e7a8625e75c6aa916004db931", - "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/d4fe3e6fd9bb9e72557a19674f44d8ac7db4c6ca", + "reference": "d4fe3e6fd9bb9e72557a19674f44d8ac7db4c6ca", "shasum": "" }, "require": { "php": "^7.1 || ^8.0" }, + "conflict": { + "phpunit/phpunit": "<=7.5 || >=14" + }, "require-dev": { - "doctrine/coding-standard": "^9", - "phpstan/phpstan": "1.4.10 || 1.10.15", - "phpstan/phpstan-phpunit": "^1.0", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "psalm/plugin-phpunit": "0.18.4", - "psr/log": "^1 || ^2 || ^3", - "vimeo/psalm": "4.30.0 || 5.12.0" + "doctrine/coding-standard": "^9 || ^12 || ^14", + "phpstan/phpstan": "1.4.10 || 2.1.30", + "phpstan/phpstan-phpunit": "^1.0 || ^2", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6 || ^10.5 || ^11.5 || ^12.4 || ^13.0", + "psr/log": "^1 || ^2 || ^3" }, "suggest": { "psr/log": "Allows logging deprecations via PSR-3 logger implementation" @@ -244,7 +145,7 @@ "type": "library", "autoload": { "psr-4": { - "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations" + "Doctrine\\Deprecations\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -255,64 +156,64 @@ "homepage": "https://www.doctrine-project.org/", "support": { "issues": "https://github.com/doctrine/deprecations/issues", - "source": "https://github.com/doctrine/deprecations/tree/1.1.2" + "source": "https://github.com/doctrine/deprecations/tree/1.1.6" }, - "time": "2023-09-27T20:04:15+00:00" + "time": "2026-02-07T07:09:04+00:00" }, { "name": "doctrine/doctrine-bundle", - "version": "2.10.2", + "version": "3.2.4", "source": { "type": "git", "url": "https://github.com/doctrine/DoctrineBundle.git", - "reference": "f28b1f78de3a2938ff05cfe751233097624cc756" + "reference": "75f1bf75d0ba099f23e7d43ebd804df5bec58c29" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/f28b1f78de3a2938ff05cfe751233097624cc756", - "reference": "f28b1f78de3a2938ff05cfe751233097624cc756", + "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/75f1bf75d0ba099f23e7d43ebd804df5bec58c29", + "reference": "75f1bf75d0ba099f23e7d43ebd804df5bec58c29", "shasum": "" }, "require": { - "doctrine/cache": "^1.11 || ^2.0", - "doctrine/dbal": "^3.6.0", - "doctrine/persistence": "^2.2 || ^3", + "doctrine/dbal": "^4.0", + "doctrine/deprecations": "^1.0", + "doctrine/persistence": "^4", "doctrine/sql-formatter": "^1.0.1", - "php": "^7.4 || ^8.0", - "symfony/cache": "^5.4 || ^6.0", - "symfony/config": "^5.4 || ^6.0", - "symfony/console": "^5.4 || ^6.0", - "symfony/dependency-injection": "^5.4 || ^6.0", - "symfony/deprecation-contracts": "^2.1 || ^3", - "symfony/doctrine-bridge": "^5.4.19 || ^6.0.7", - "symfony/framework-bundle": "^5.4 || ^6.0", - "symfony/service-contracts": "^1.1.1 || ^2.0 || ^3" + "php": "^8.4", + "symfony/cache": "^6.4 || ^7.0 || ^8.0", + "symfony/config": "^6.4 || ^7.0 || ^8.0", + "symfony/console": "^6.4 || ^7.0 || ^8.0", + "symfony/dependency-injection": "^6.4 || ^7.0 || ^8.0", + "symfony/doctrine-bridge": "^6.4.3 || ^7.0.3 || ^8.0", + "symfony/framework-bundle": "^6.4 || ^7.0 || ^8.0", + "symfony/service-contracts": "^3" }, "conflict": { - "doctrine/annotations": ">=3.0", - "doctrine/orm": "<2.11 || >=3.0", - "twig/twig": "<1.34 || >=2.0 <2.4" + "doctrine/orm": "<3.0 || >=4.0", + "twig/twig": "<3.0.4" }, "require-dev": { - "doctrine/annotations": "^1 || ^2", - "doctrine/coding-standard": "^9.0", - "doctrine/deprecations": "^1.0", - "doctrine/orm": "^2.11 || ^3.0", - "friendsofphp/proxy-manager-lts": "^1.0", - "phpunit/phpunit": "^9.5.26 || ^10.0", - "psalm/plugin-phpunit": "^0.18.4", - "psalm/plugin-symfony": "^4", - "psr/log": "^1.1.4 || ^2.0 || ^3.0", - "symfony/phpunit-bridge": "^6.1", - "symfony/property-info": "^5.4 || ^6.0", - "symfony/proxy-manager-bridge": "^5.4 || ^6.0", - "symfony/security-bundle": "^5.4 || ^6.0", - "symfony/twig-bridge": "^5.4 || ^6.0", - "symfony/validator": "^5.4 || ^6.0", - "symfony/web-profiler-bundle": "^5.4 || ^6.0", - "symfony/yaml": "^5.4 || ^6.0", - "twig/twig": "^1.34 || ^2.12 || ^3.0", - "vimeo/psalm": "^4.30" + "doctrine/coding-standard": "^14", + "doctrine/orm": "^3.4.4", + "phpstan/phpstan": "^2.1.13", + "phpstan/phpstan-phpunit": "2.0.3", + "phpstan/phpstan-strict-rules": "^2", + "phpstan/phpstan-symfony": "^2.0.9", + "phpunit/phpunit": "^12.3.10", + "psr/log": "^3.0", + "symfony/doctrine-messenger": "^6.4 || ^7.0 || ^8.0", + "symfony/expression-language": "^6.4 || ^7.0 || ^8.0", + "symfony/http-kernel": "^6.4 || ^7.0 || ^8.0", + "symfony/messenger": "^6.4 || ^7.0 || ^8.0", + "symfony/property-info": "^6.4 || ^7.0 || ^8.0", + "symfony/security-bundle": "^6.4 || ^7.0 || ^8.0", + "symfony/stopwatch": "^6.4 || ^7.0 || ^8.0", + "symfony/string": "^6.4 || ^7.0 || ^8.0", + "symfony/twig-bridge": "^6.4 || ^7.0 || ^8.0", + "symfony/validator": "^6.4 || ^7.0 || ^8.0", + "symfony/web-profiler-bundle": "^6.4 || ^7.0 || ^8.0", + "symfony/yaml": "^6.4 || ^7.0 || ^8.0", + "twig/twig": "^3.21.1" }, "suggest": { "doctrine/orm": "The Doctrine ORM integration is optional in the bundle.", @@ -322,7 +223,7 @@ "type": "symfony-bundle", "autoload": { "psr-4": { - "Doctrine\\Bundle\\DoctrineBundle\\": "" + "Doctrine\\Bundle\\DoctrineBundle\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -357,7 +258,7 @@ ], "support": { "issues": "https://github.com/doctrine/DoctrineBundle/issues", - "source": "https://github.com/doctrine/DoctrineBundle/tree/2.10.2" + "source": "https://github.com/doctrine/DoctrineBundle/tree/3.2.4" }, "funding": [ { @@ -373,20 +274,20 @@ "type": "tidelift" } ], - "time": "2023-08-06T09:31:40+00:00" + "time": "2026-06-09T19:11:55+00:00" }, { "name": "doctrine/event-manager", - "version": "2.0.0", + "version": "2.1.1", "source": { "type": "git", "url": "https://github.com/doctrine/event-manager.git", - "reference": "750671534e0241a7c50ea5b43f67e23eb5c96f32" + "reference": "dda33921b198841ca8dbad2eaa5d4d34769d18cf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/event-manager/zipball/750671534e0241a7c50ea5b43f67e23eb5c96f32", - "reference": "750671534e0241a7c50ea5b43f67e23eb5c96f32", + "url": "https://api.github.com/repos/doctrine/event-manager/zipball/dda33921b198841ca8dbad2eaa5d4d34769d18cf", + "reference": "dda33921b198841ca8dbad2eaa5d4d34769d18cf", "shasum": "" }, "require": { @@ -396,10 +297,10 @@ "doctrine/common": "<2.9" }, "require-dev": { - "doctrine/coding-standard": "^10", - "phpstan/phpstan": "^1.8.8", - "phpunit/phpunit": "^9.5", - "vimeo/psalm": "^4.28" + "doctrine/coding-standard": "^14", + "phpdocumentor/guides-cli": "^1.4", + "phpstan/phpstan": "^2.1.32", + "phpunit/phpunit": "^10.5.58" }, "type": "library", "autoload": { @@ -448,7 +349,7 @@ ], "support": { "issues": "https://github.com/doctrine/event-manager/issues", - "source": "https://github.com/doctrine/event-manager/tree/2.0.0" + "source": "https://github.com/doctrine/event-manager/tree/2.1.1" }, "funding": [ { @@ -464,45 +365,41 @@ "type": "tidelift" } ], - "time": "2022-10-12T20:59:15+00:00" + "time": "2026-01-29T07:11:08+00:00" }, { "name": "doctrine/persistence", - "version": "3.2.0", + "version": "4.2.0", "source": { "type": "git", "url": "https://github.com/doctrine/persistence.git", - "reference": "63fee8c33bef740db6730eb2a750cd3da6495603" + "reference": "49ab73e0d3e2ac8d1f5ecda3dd8acd5503781e8b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/persistence/zipball/63fee8c33bef740db6730eb2a750cd3da6495603", - "reference": "63fee8c33bef740db6730eb2a750cd3da6495603", + "url": "https://api.github.com/repos/doctrine/persistence/zipball/49ab73e0d3e2ac8d1f5ecda3dd8acd5503781e8b", + "reference": "49ab73e0d3e2ac8d1f5ecda3dd8acd5503781e8b", "shasum": "" }, "require": { + "doctrine/deprecations": "^1", "doctrine/event-manager": "^1 || ^2", - "php": "^7.2 || ^8.0", + "php": "^8.1", "psr/cache": "^1.0 || ^2.0 || ^3.0" }, - "conflict": { - "doctrine/common": "<2.10" - }, "require-dev": { - "composer/package-versions-deprecated": "^1.11", - "doctrine/coding-standard": "^11", - "doctrine/common": "^3.0", - "phpstan/phpstan": "1.9.4", - "phpstan/phpstan-phpunit": "^1", - "phpstan/phpstan-strict-rules": "^1.1", - "phpunit/phpunit": "^8.5 || ^9.5", - "symfony/cache": "^4.4 || ^5.4 || ^6.0", - "vimeo/psalm": "4.30.0 || 5.3.0" + "doctrine/coding-standard": "^14", + "phpstan/phpstan": "2.1.30", + "phpstan/phpstan-phpunit": "^2", + "phpstan/phpstan-strict-rules": "^2", + "phpunit/phpunit": "^10.5.58 || ^12", + "symfony/cache": "^4.4 || ^5.4 || ^6.0 || ^7.0 || ^8.0", + "symfony/finder": "^4.4 || ^5.4 || ^6.0 || ^7.0 || ^8.0" }, "type": "library", "autoload": { "psr-4": { - "Doctrine\\Persistence\\": "src/Persistence" + "Doctrine\\Persistence\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -546,7 +443,7 @@ ], "support": { "issues": "https://github.com/doctrine/persistence/issues", - "source": "https://github.com/doctrine/persistence/tree/3.2.0" + "source": "https://github.com/doctrine/persistence/tree/4.2.0" }, "funding": [ { @@ -562,27 +459,30 @@ "type": "tidelift" } ], - "time": "2023-05-17T18:32:04+00:00" + "time": "2026-04-26T12:12:52+00:00" }, { "name": "doctrine/sql-formatter", - "version": "1.1.3", + "version": "1.5.4", "source": { "type": "git", "url": "https://github.com/doctrine/sql-formatter.git", - "reference": "25a06c7bf4c6b8218f47928654252863ffc890a5" + "reference": "9563949f5cd3bd12a17d12fb980528bc141c5806" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/sql-formatter/zipball/25a06c7bf4c6b8218f47928654252863ffc890a5", - "reference": "25a06c7bf4c6b8218f47928654252863ffc890a5", + "url": "https://api.github.com/repos/doctrine/sql-formatter/zipball/9563949f5cd3bd12a17d12fb980528bc141c5806", + "reference": "9563949f5cd3bd12a17d12fb980528bc141c5806", "shasum": "" }, "require": { - "php": "^7.1 || ^8.0" + "php": "^8.1" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.4" + "doctrine/coding-standard": "^14", + "ergebnis/phpunit-slow-test-detector": "^2.20", + "phpstan/phpstan": "^2.1.31", + "phpunit/phpunit": "^10.5.58" }, "bin": [ "bin/sql-formatter" @@ -612,9 +512,9 @@ ], "support": { "issues": "https://github.com/doctrine/sql-formatter/issues", - "source": "https://github.com/doctrine/sql-formatter/tree/1.1.3" + "source": "https://github.com/doctrine/sql-formatter/tree/1.5.4" }, - "time": "2022-05-23T21:33:49+00:00" + "time": "2026-02-08T16:21:46+00:00" }, { "name": "psr/cache", @@ -770,16 +670,16 @@ }, { "name": "psr/log", - "version": "3.0.0", + "version": "3.0.2", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001" + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001", - "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001", + "url": "https://api.github.com/repos/php-fig/log/zipball/f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", "shasum": "" }, "require": { @@ -814,37 +714,35 @@ "psr-3" ], "support": { - "source": "https://github.com/php-fig/log/tree/3.0.0" + "source": "https://github.com/php-fig/log/tree/3.0.2" }, - "time": "2021-07-14T16:46:02+00:00" + "time": "2024-09-11T13:17:53+00:00" }, { "name": "symfony/cache", - "version": "v6.3.4", + "version": "v8.1.0", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "e60d00b4f633efa4c1ef54e77c12762d9073e7b3" + "reference": "ba62e0ed9ea9bc26142844a891d4a3dfceb24aed" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/e60d00b4f633efa4c1ef54e77c12762d9073e7b3", - "reference": "e60d00b4f633efa4c1ef54e77c12762d9073e7b3", + "url": "https://api.github.com/repos/symfony/cache/zipball/ba62e0ed9ea9bc26142844a891d4a3dfceb24aed", + "reference": "ba62e0ed9ea9bc26142844a891d4a3dfceb24aed", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.4.1", "psr/cache": "^2.0|^3.0", "psr/log": "^1.1|^2|^3", - "symfony/cache-contracts": "^2.5|^3", + "symfony/cache-contracts": "^3.6", "symfony/service-contracts": "^2.5|^3", - "symfony/var-exporter": "^6.2.10" + "symfony/var-exporter": "^8.1" }, "conflict": { - "doctrine/dbal": "<2.13.1", - "symfony/dependency-injection": "<5.4", - "symfony/http-kernel": "<5.4", - "symfony/var-dumper": "<5.4" + "ext-redis": "<6.1", + "ext-relay": "<0.12.1" }, "provide": { "psr/cache-implementation": "2.0|3.0", @@ -853,15 +751,16 @@ }, "require-dev": { "cache/integration-tests": "dev-master", - "doctrine/dbal": "^2.13.1|^3.0", + "doctrine/dbal": "^4.3", "predis/predis": "^1.1|^2.0", "psr/simple-cache": "^1.0|^2.0|^3.0", - "symfony/config": "^5.4|^6.0", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/filesystem": "^5.4|^6.0", - "symfony/http-kernel": "^5.4|^6.0", - "symfony/messenger": "^5.4|^6.0", - "symfony/var-dumper": "^5.4|^6.0" + "symfony/clock": "^7.4|^8.0", + "symfony/config": "^7.4|^8.0", + "symfony/dependency-injection": "^7.4|^8.0", + "symfony/filesystem": "^7.4|^8.0", + "symfony/http-kernel": "^7.4|^8.0", + "symfony/messenger": "^7.4|^8.0", + "symfony/var-dumper": "^7.4|^8.0" }, "type": "library", "autoload": { @@ -896,7 +795,7 @@ "psr6" ], "support": { - "source": "https://github.com/symfony/cache/tree/v6.3.4" + "source": "https://github.com/symfony/cache/tree/v8.1.0" }, "funding": [ { @@ -907,25 +806,29 @@ "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": "2023-08-05T09:10:27+00:00" + "time": "2026-05-29T05:06:50+00:00" }, { "name": "symfony/cache-contracts", - "version": "v3.3.0", + "version": "v3.7.0", "source": { "type": "git", "url": "https://github.com/symfony/cache-contracts.git", - "reference": "ad945640ccc0ae6e208bcea7d7de4b39b569896b" + "reference": "225e8a254166bd3442e370c6f50145465db63831" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/ad945640ccc0ae6e208bcea7d7de4b39b569896b", - "reference": "ad945640ccc0ae6e208bcea7d7de4b39b569896b", + "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/225e8a254166bd3442e370c6f50145465db63831", + "reference": "225e8a254166bd3442e370c6f50145465db63831", "shasum": "" }, "require": { @@ -934,12 +837,12 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "3.4-dev" - }, "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, + "branch-alias": { + "dev-main": "3.7-dev" } }, "autoload": { @@ -972,7 +875,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/cache-contracts/tree/v3.3.0" + "source": "https://github.com/symfony/cache-contracts/tree/v3.7.0" }, "funding": [ { @@ -983,43 +886,46 @@ "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": "2023-05-23T14:45:45+00:00" + "time": "2026-05-05T15:33:14+00:00" }, { "name": "symfony/config", - "version": "v6.3.2", + "version": "v8.1.0", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "b47ca238b03e7b0d7880ffd1cf06e8d637ca1467" + "reference": "429783a0c649696f2058ea5ab5315f082dba6de9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/b47ca238b03e7b0d7880ffd1cf06e8d637ca1467", - "reference": "b47ca238b03e7b0d7880ffd1cf06e8d637ca1467", + "url": "https://api.github.com/repos/symfony/config/zipball/429783a0c649696f2058ea5ab5315f082dba6de9", + "reference": "429783a0c649696f2058ea5ab5315f082dba6de9", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.4.1", "symfony/deprecation-contracts": "^2.5|^3", - "symfony/filesystem": "^5.4|^6.0", - "symfony/polyfill-ctype": "~1.8" + "symfony/filesystem": "^7.4|^8.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", - "symfony/finder": "^5.4|^6.0", - "symfony/messenger": "^5.4|^6.0", + "symfony/event-dispatcher": "^7.4|^8.0", + "symfony/finder": "^7.4|^8.0", + "symfony/messenger": "^7.4|^8.0", "symfony/service-contracts": "^2.5|^3", - "symfony/yaml": "^5.4|^6.0" + "symfony/yaml": "^7.4|^8.0" }, "type": "library", "autoload": { @@ -1047,7 +953,7 @@ "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.3.2" + "source": "https://github.com/symfony/config/tree/v8.1.0" }, "funding": [ { @@ -1058,52 +964,62 @@ "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": "2023-07-19T20:22:16+00:00" + "time": "2026-05-29T05:06:50+00:00" }, { "name": "symfony/console", - "version": "v6.3.4", + "version": "v8.1.0", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "eca495f2ee845130855ddf1cf18460c38966c8b6" + "reference": "f5a856c6ecb56b3c21ed94a5b7bf940d857d110a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/eca495f2ee845130855ddf1cf18460c38966c8b6", - "reference": "eca495f2ee845130855ddf1cf18460c38966c8b6", + "url": "https://api.github.com/repos/symfony/console/zipball/f5a856c6ecb56b3c21ed94a5b7bf940d857d110a", + "reference": "f5a856c6ecb56b3c21ed94a5b7bf940d857d110a", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.4.1", "symfony/deprecation-contracts": "^2.5|^3", - "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-mbstring": "^1.0", + "symfony/polyfill-php85": "^1.32", "symfony/service-contracts": "^2.5|^3", - "symfony/string": "^5.4|^6.0" + "symfony/string": "^7.4.6|^8.0.6" }, "conflict": { - "symfony/dependency-injection": "<5.4", - "symfony/dotenv": "<5.4", - "symfony/event-dispatcher": "<5.4", - "symfony/lock": "<5.4", - "symfony/process": "<5.4" + "symfony/dependency-injection": "<8.1", + "symfony/event-dispatcher": "<8.1" }, "provide": { "psr/log-implementation": "1.0|2.0|3.0" }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^5.4|^6.0", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/event-dispatcher": "^5.4|^6.0", - "symfony/lock": "^5.4|^6.0", - "symfony/process": "^5.4|^6.0", - "symfony/var-dumper": "^5.4|^6.0" + "symfony/config": "^7.4|^8.0", + "symfony/dependency-injection": "^8.1", + "symfony/event-dispatcher": "^8.1", + "symfony/filesystem": "^7.4|^8.0", + "symfony/http-foundation": "^7.4|^8.0", + "symfony/http-kernel": "^7.4|^8.0", + "symfony/lock": "^7.4|^8.0", + "symfony/messenger": "^7.4|^8.0", + "symfony/mime": "^7.4|^8.0", + "symfony/process": "^7.4|^8.0", + "symfony/stopwatch": "^7.4|^8.0", + "symfony/uid": "^7.4|^8.0", + "symfony/validator": "^7.4|^8.0", + "symfony/var-dumper": "^7.4|^8.0" }, "type": "library", "autoload": { @@ -1137,7 +1053,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.3.4" + "source": "https://github.com/symfony/console/tree/v8.1.0" }, "funding": [ { @@ -1148,49 +1064,49 @@ "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": "2023-08-16T10:10:12+00:00" + "time": "2026-05-29T05:06:50+00:00" }, { "name": "symfony/dependency-injection", - "version": "v6.3.4", + "version": "v8.1.0", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "68a5a9570806a087982f383f6109c5e925892a49" + "reference": "b6ba1f45127106885de4b77558c5ecca8feb1e1b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/68a5a9570806a087982f383f6109c5e925892a49", - "reference": "68a5a9570806a087982f383f6109c5e925892a49", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/b6ba1f45127106885de4b77558c5ecca8feb1e1b", + "reference": "b6ba1f45127106885de4b77558c5ecca8feb1e1b", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.4.1", "psr/container": "^1.1|^2.0", "symfony/deprecation-contracts": "^2.5|^3", - "symfony/service-contracts": "^2.5|^3.0", - "symfony/var-exporter": "^6.2.10" + "symfony/service-contracts": "^3.6", + "symfony/var-exporter": "^8.1" }, "conflict": { - "ext-psr": "<1.1|>=2", - "symfony/config": "<6.1", - "symfony/finder": "<5.4", - "symfony/proxy-manager-bridge": "<6.3", - "symfony/yaml": "<5.4" + "ext-psr": "<1.1|>=2" }, "provide": { "psr/container-implementation": "1.1|2.0", "symfony/service-implementation": "1.1|2.0|3.0" }, "require-dev": { - "symfony/config": "^6.1", - "symfony/expression-language": "^5.4|^6.0", - "symfony/yaml": "^5.4|^6.0" + "symfony/config": "^7.4|^8.0", + "symfony/expression-language": "^7.4|^8.0", + "symfony/yaml": "^7.4|^8.0" }, "type": "library", "autoload": { @@ -1218,7 +1134,7 @@ "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.3.4" + "source": "https://github.com/symfony/dependency-injection/tree/v8.1.0" }, "funding": [ { @@ -1229,25 +1145,29 @@ "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": "2023-08-16T17:55:17+00:00" + "time": "2026-05-29T05:06:50+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v3.5.1", + "version": "v3.7.0", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6" + "reference": "50f59d1f3ca46d41ac911f97a78626b6756af35b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6", - "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/50f59d1f3ca46d41ac911f97a78626b6756af35b", + "reference": "50f59d1f3ca46d41ac911f97a78626b6756af35b", "shasum": "" }, "require": { @@ -1255,12 +1175,12 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "3.5-dev" - }, "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, + "branch-alias": { + "dev-main": "3.7-dev" } }, "autoload": { @@ -1285,7 +1205,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.1" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.7.0" }, "funding": [ { @@ -1296,78 +1216,72 @@ "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": "2024-09-25T14:20:29+00:00" + "time": "2026-04-13T15:52:40+00:00" }, { "name": "symfony/doctrine-bridge", - "version": "v6.3.4", + "version": "v8.1.0", "source": { "type": "git", "url": "https://github.com/symfony/doctrine-bridge.git", - "reference": "589eeeb93669739ec1d8bd4593e4972d94e0981d" + "reference": "80daf848dd39d9ff5a0f39aa6f2bf5448aa662c5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/589eeeb93669739ec1d8bd4593e4972d94e0981d", - "reference": "589eeeb93669739ec1d8bd4593e4972d94e0981d", + "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/80daf848dd39d9ff5a0f39aa6f2bf5448aa662c5", + "reference": "80daf848dd39d9ff5a0f39aa6f2bf5448aa662c5", "shasum": "" }, "require": { - "doctrine/event-manager": "^1.2|^2", - "doctrine/persistence": "^2|^3", - "php": ">=8.1", + "doctrine/event-manager": "^2", + "doctrine/persistence": "^3.1|^4", + "php": ">=8.4.1", "symfony/deprecation-contracts": "^2.5|^3", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-ctype": "^1.8", + "symfony/polyfill-mbstring": "^1.0", "symfony/service-contracts": "^2.5|^3" }, "conflict": { - "doctrine/annotations": "<1.13.1", - "doctrine/dbal": "<2.13.1", + "doctrine/collections": "<1.8", + "doctrine/dbal": "<4.3", "doctrine/lexer": "<1.1", - "doctrine/orm": "<2.12", - "symfony/cache": "<5.4", - "symfony/dependency-injection": "<6.2", - "symfony/form": "<5.4.21|>=6,<6.2.7", - "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.0", - "symfony/validator": "<5.4.25|>=6,<6.2.12|>=6.3,<6.3.1" + "doctrine/orm": "<3.4", + "symfony/property-info": "<8.0" }, "require-dev": { - "doctrine/annotations": "^1.13.1|^2", - "doctrine/collections": "^1.0|^2.0", - "doctrine/data-fixtures": "^1.1", - "doctrine/dbal": "^2.13.1|^3.0", - "doctrine/orm": "^2.12", + "doctrine/collections": "^1.8|^2.0", + "doctrine/data-fixtures": "^1.1|^2", + "doctrine/dbal": "^4.3", + "doctrine/orm": "^3.4", "psr/log": "^1|^2|^3", - "symfony/cache": "^5.4|^6.0", - "symfony/config": "^5.4|^6.0", - "symfony/dependency-injection": "^6.2", - "symfony/doctrine-messenger": "^5.4|^6.0", - "symfony/expression-language": "^5.4|^6.0", - "symfony/form": "^5.4.21|^6.2.7", - "symfony/http-kernel": "^6.3", - "symfony/lock": "^6.3", - "symfony/messenger": "^5.4|^6.0", - "symfony/property-access": "^5.4|^6.0", - "symfony/property-info": "^5.4|^6.0", - "symfony/proxy-manager-bridge": "^5.4|^6.0", - "symfony/security-core": "^6.0", - "symfony/stopwatch": "^5.4|^6.0", - "symfony/translation": "^5.4|^6.0", - "symfony/uid": "^5.4|^6.0", - "symfony/validator": "^5.4.25|~6.2.12|^6.3.1", - "symfony/var-dumper": "^5.4|^6.0" + "symfony/cache": "^7.4|^8.0", + "symfony/config": "^7.4|^8.0", + "symfony/console": "^8.1", + "symfony/dependency-injection": "^7.4|^8.0", + "symfony/doctrine-messenger": "^7.4|^8.0", + "symfony/expression-language": "^7.4|^8.0", + "symfony/form": "^7.4|^8.0", + "symfony/http-kernel": "^7.4|^8.0", + "symfony/lock": "^7.4|^8.0", + "symfony/messenger": "^7.4|^8.0", + "symfony/property-access": "^7.4|^8.0", + "symfony/property-info": "^8.0", + "symfony/security-core": "^7.4|^8.0", + "symfony/stopwatch": "^7.4|^8.0", + "symfony/translation": "^7.4|^8.0", + "symfony/type-info": "^7.4|^8.0", + "symfony/uid": "^7.4|^8.0", + "symfony/validator": "^7.4|^8.0", + "symfony/var-dumper": "^7.4|^8.0" }, "type": "symfony-bridge", "autoload": { @@ -1395,7 +1309,7 @@ "description": "Provides integration for Doctrine with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/doctrine-bridge/tree/v6.3.4" + "source": "https://github.com/symfony/doctrine-bridge/tree/v8.1.0" }, "funding": [ { @@ -1406,39 +1320,46 @@ "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": "2023-08-08T10:40:25+00:00" + "time": "2026-05-29T05:18:49+00:00" }, { "name": "symfony/error-handler", - "version": "v6.3.5", + "version": "v8.1.0", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "1f69476b64fb47105c06beef757766c376b548c4" + "reference": "d8aeb1abd3fef84795567850d3a567bdb5945ee5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/1f69476b64fb47105c06beef757766c376b548c4", - "reference": "1f69476b64fb47105c06beef757766c376b548c4", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/d8aeb1abd3fef84795567850d3a567bdb5945ee5", + "reference": "d8aeb1abd3fef84795567850d3a567bdb5945ee5", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.4.1", "psr/log": "^1|^2|^3", - "symfony/var-dumper": "^5.4|^6.0" + "symfony/polyfill-php85": "^1.32", + "symfony/var-dumper": "^7.4|^8.0" }, "conflict": { "symfony/deprecation-contracts": "<2.5" }, "require-dev": { + "symfony/console": "^7.4|^8.0", "symfony/deprecation-contracts": "^2.5|^3", - "symfony/http-kernel": "^5.4|^6.0", - "symfony/serializer": "^5.4|^6.0" + "symfony/http-kernel": "^7.4|^8.0", + "symfony/serializer": "^7.4|^8.0", + "symfony/webpack-encore-bundle": "^1.0|^2.0" }, "bin": [ "Resources/bin/patch-type-declarations" @@ -1469,7 +1390,7 @@ "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.3.5" + "source": "https://github.com/symfony/error-handler/tree/v8.1.0" }, "funding": [ { @@ -1480,33 +1401,38 @@ "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": "2023-09-12T06:57:20+00:00" + "time": "2026-05-29T05:06:50+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v6.3.2", + "version": "v8.1.0", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "adb01fe097a4ee930db9258a3cc906b5beb5cf2e" + "reference": "f249ae3f680958b6f1f9dd76e5747cf0695b4102" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/adb01fe097a4ee930db9258a3cc906b5beb5cf2e", - "reference": "adb01fe097a4ee930db9258a3cc906b5beb5cf2e", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/f249ae3f680958b6f1f9dd76e5747cf0695b4102", + "reference": "f249ae3f680958b6f1f9dd76e5747cf0695b4102", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.4.1", + "symfony/deprecation-contracts": "^2.5|^3", "symfony/event-dispatcher-contracts": "^2.5|^3" }, "conflict": { - "symfony/dependency-injection": "<5.4", + "symfony/security-http": "<7.4", "symfony/service-contracts": "<2.5" }, "provide": { @@ -1515,13 +1441,14 @@ }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^5.4|^6.0", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/error-handler": "^5.4|^6.0", - "symfony/expression-language": "^5.4|^6.0", - "symfony/http-foundation": "^5.4|^6.0", + "symfony/config": "^7.4|^8.0", + "symfony/dependency-injection": "^7.4|^8.0", + "symfony/error-handler": "^7.4|^8.0", + "symfony/expression-language": "^7.4|^8.0", + "symfony/framework-bundle": "^7.4|^8.0", + "symfony/http-foundation": "^7.4|^8.0", "symfony/service-contracts": "^2.5|^3", - "symfony/stopwatch": "^5.4|^6.0" + "symfony/stopwatch": "^7.4|^8.0" }, "type": "library", "autoload": { @@ -1549,7 +1476,7 @@ "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.3.2" + "source": "https://github.com/symfony/event-dispatcher/tree/v8.1.0" }, "funding": [ { @@ -1560,25 +1487,29 @@ "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": "2023-07-06T06:56:43+00:00" + "time": "2026-05-29T05:06:50+00:00" }, { "name": "symfony/event-dispatcher-contracts", - "version": "v3.3.0", + "version": "v3.7.0", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "a76aed96a42d2b521153fb382d418e30d18b59df" + "reference": "ccba7060602b7fed0b03c85bf025257f76d9ef32" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/a76aed96a42d2b521153fb382d418e30d18b59df", - "reference": "a76aed96a42d2b521153fb382d418e30d18b59df", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/ccba7060602b7fed0b03c85bf025257f76d9ef32", + "reference": "ccba7060602b7fed0b03c85bf025257f76d9ef32", "shasum": "" }, "require": { @@ -1587,12 +1518,12 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "3.4-dev" - }, "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, + "branch-alias": { + "dev-main": "3.7-dev" } }, "autoload": { @@ -1625,7 +1556,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.3.0" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.7.0" }, "funding": [ { @@ -1636,32 +1567,40 @@ "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": "2023-05-23T14:45:45+00:00" + "time": "2026-01-05T13:30:16+00:00" }, { "name": "symfony/filesystem", - "version": "v6.3.1", + "version": "v8.1.0", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "edd36776956f2a6fcf577edb5b05eb0e3bdc52ae" + "reference": "99aec13b82b4967ec5088222c4a3ecca955949c2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/edd36776956f2a6fcf577edb5b05eb0e3bdc52ae", - "reference": "edd36776956f2a6fcf577edb5b05eb0e3bdc52ae", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/99aec13b82b4967ec5088222c4a3ecca955949c2", + "reference": "99aec13b82b4967ec5088222c4a3ecca955949c2", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.4.1", + "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-mbstring": "~1.8" }, + "require-dev": { + "symfony/process": "^7.4|^8.0" + }, "type": "library", "autoload": { "psr-4": { @@ -1688,7 +1627,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v6.3.1" + "source": "https://github.com/symfony/filesystem/tree/v8.1.0" }, "funding": [ { @@ -1699,32 +1638,36 @@ "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": "2023-06-01T08:30:39+00:00" + "time": "2026-05-29T05:06:50+00:00" }, { "name": "symfony/finder", - "version": "v6.3.3", + "version": "v8.1.0", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "9915db259f67d21eefee768c1abcf1cc61b1fc9e" + "reference": "58d2e767a66052c1487356f953445634a8194c64" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/9915db259f67d21eefee768c1abcf1cc61b1fc9e", - "reference": "9915db259f67d21eefee768c1abcf1cc61b1fc9e", + "url": "https://api.github.com/repos/symfony/finder/zipball/58d2e767a66052c1487356f953445634a8194c64", + "reference": "58d2e767a66052c1487356f953445634a8194c64", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.4.1" }, "require-dev": { - "symfony/filesystem": "^6.0" + "symfony/filesystem": "^7.4|^8.0" }, "type": "library", "autoload": { @@ -1752,7 +1695,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v6.3.3" + "source": "https://github.com/symfony/finder/tree/v8.1.0" }, "funding": [ { @@ -1763,112 +1706,111 @@ "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": "2023-07-31T08:31:44+00:00" + "time": "2026-05-29T05:06:50+00:00" }, { "name": "symfony/framework-bundle", - "version": "v6.3.4", + "version": "v8.1.0", "source": { "type": "git", "url": "https://github.com/symfony/framework-bundle.git", - "reference": "f822f54ff05cd88878910b4559f66c12176d952c" + "reference": "6a0953f4fd8b51db6136c2628af99b7193e63256" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/f822f54ff05cd88878910b4559f66c12176d952c", - "reference": "f822f54ff05cd88878910b4559f66c12176d952c", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/6a0953f4fd8b51db6136c2628af99b7193e63256", + "reference": "6a0953f4fd8b51db6136c2628af99b7193e63256", "shasum": "" }, "require": { "composer-runtime-api": ">=2.1", "ext-xml": "*", - "php": ">=8.1", - "symfony/cache": "^5.4|^6.0", - "symfony/config": "^6.1", - "symfony/dependency-injection": "^6.3.1", + "php": ">=8.4.1", + "symfony/cache": "^7.4|^8.0", + "symfony/config": "^7.4.4|^8.0.4", + "symfony/dependency-injection": "^8.1", "symfony/deprecation-contracts": "^2.5|^3", - "symfony/error-handler": "^6.1", - "symfony/event-dispatcher": "^5.4|^6.0", - "symfony/filesystem": "^5.4|^6.0", - "symfony/finder": "^5.4|^6.0", - "symfony/http-foundation": "^6.3", - "symfony/http-kernel": "^6.3", - "symfony/polyfill-mbstring": "~1.0", - "symfony/routing": "^5.4|^6.0" + "symfony/error-handler": "^7.4|^8.0", + "symfony/event-dispatcher": "^8.1", + "symfony/filesystem": "^7.4|^8.0", + "symfony/finder": "^7.4|^8.0", + "symfony/http-foundation": "^7.4|^8.0", + "symfony/http-kernel": "^8.1", + "symfony/polyfill-mbstring": "^1.0", + "symfony/polyfill-php85": "^1.33", + "symfony/routing": "^7.4|^8.0", + "symfony/service-contracts": "^3.7", + "symfony/var-exporter": "^8.1" }, "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/clock": "<6.3", - "symfony/console": "<5.4", - "symfony/dom-crawler": "<6.3", - "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.2", - "symfony/property-access": "<5.4", - "symfony/property-info": "<5.4", - "symfony/security-core": "<5.4", - "symfony/security-csrf": "<5.4", - "symfony/serializer": "<6.3", - "symfony/stopwatch": "<5.4", - "symfony/translation": "<6.2.8", - "symfony/twig-bridge": "<5.4", - "symfony/twig-bundle": "<5.4", - "symfony/validator": "<6.3", - "symfony/web-profiler-bundle": "<5.4", - "symfony/workflow": "<5.4" + "phpdocumentor/reflection-docblock": "<5.2|>=7", + "phpdocumentor/type-resolver": "<1.5.1", + "symfony/console": "<8.1", + "symfony/form": "<7.4", + "symfony/json-streamer": "<7.4", + "symfony/messenger": "<7.4.10|>=8.0,<8.0.10", + "symfony/mime": "<7.4.9|>=8.0,<8.0.9", + "symfony/security-csrf": "<7.4", + "symfony/serializer": "<7.4", + "symfony/translation": "<7.4", + "symfony/webhook": "<7.4", + "symfony/workflow": "<7.4" }, "require-dev": { - "doctrine/annotations": "^1.13.1|^2", "doctrine/persistence": "^1.3|^2|^3", - "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", - "symfony/asset": "^5.4|^6.0", - "symfony/asset-mapper": "^6.3", - "symfony/browser-kit": "^5.4|^6.0", - "symfony/clock": "^6.2", - "symfony/console": "^5.4.9|^6.0.9", - "symfony/css-selector": "^5.4|^6.0", - "symfony/dom-crawler": "^6.3", - "symfony/dotenv": "^5.4|^6.0", - "symfony/expression-language": "^5.4|^6.0", - "symfony/form": "^5.4|^6.0", - "symfony/html-sanitizer": "^6.1", - "symfony/http-client": "^6.3", - "symfony/lock": "^5.4|^6.0", - "symfony/mailer": "^5.4|^6.0", - "symfony/messenger": "^6.3", - "symfony/mime": "^6.2", - "symfony/notifier": "^5.4|^6.0", - "symfony/polyfill-intl-icu": "~1.0", - "symfony/process": "^5.4|^6.0", - "symfony/property-info": "^5.4|^6.0", - "symfony/rate-limiter": "^5.4|^6.0", - "symfony/scheduler": "^6.3", - "symfony/security-bundle": "^5.4|^6.0", - "symfony/semaphore": "^5.4|^6.0", - "symfony/serializer": "^6.3", - "symfony/stopwatch": "^5.4|^6.0", - "symfony/string": "^5.4|^6.0", - "symfony/translation": "^6.2.8", - "symfony/twig-bundle": "^5.4|^6.0", - "symfony/uid": "^5.4|^6.0", - "symfony/validator": "^6.3", - "symfony/web-link": "^5.4|^6.0", - "symfony/workflow": "^5.4|^6.0", - "symfony/yaml": "^5.4|^6.0", - "twig/twig": "^2.10|^3.0" + "dragonmantank/cron-expression": "^3.1", + "phpdocumentor/reflection-docblock": "^5.2|^6.0", + "phpstan/phpdoc-parser": "^1.0|^2.0", + "seld/jsonlint": "^1.10", + "symfony/asset": "^7.4|^8.0", + "symfony/asset-mapper": "^7.4|^8.0", + "symfony/browser-kit": "^7.4|^8.0", + "symfony/clock": "^7.4|^8.0", + "symfony/console": "^8.1", + "symfony/css-selector": "^7.4|^8.0", + "symfony/dom-crawler": "^7.4|^8.0", + "symfony/dotenv": "^7.4|^8.0", + "symfony/expression-language": "^7.4|^8.0", + "symfony/form": "^7.4|^8.0", + "symfony/html-sanitizer": "^7.4|^8.0", + "symfony/http-client": "^7.4|^8.0", + "symfony/json-streamer": "^7.4|^8.0", + "symfony/lock": "^7.4|^8.0", + "symfony/mailer": "^7.4|^8.0", + "symfony/messenger": "^7.4.10|^8.0.10", + "symfony/mime": "^7.4.9|^8.0.9", + "symfony/notifier": "^7.4|^8.0", + "symfony/object-mapper": "^7.4.9|^8.0.9", + "symfony/polyfill-intl-icu": "^1.0", + "symfony/process": "^7.4|^8.0", + "symfony/property-info": "^7.4|^8.0", + "symfony/rate-limiter": "^7.4|^8.0", + "symfony/runtime": "^7.4|^8.0", + "symfony/scheduler": "^7.4|^8.0", + "symfony/security-bundle": "^7.4|^8.0", + "symfony/semaphore": "^7.4|^8.0", + "symfony/serializer": "^7.4|^8.0", + "symfony/stopwatch": "^7.4|^8.0", + "symfony/string": "^7.4|^8.0", + "symfony/translation": "^7.4|^8.0", + "symfony/twig-bundle": "^7.4|^8.0", + "symfony/type-info": "^7.4.1|^8.0.1", + "symfony/uid": "^7.4|^8.0", + "symfony/validator": "^7.4|^8.0", + "symfony/web-link": "^7.4|^8.0", + "symfony/webhook": "^7.4|^8.0", + "symfony/workflow": "^7.4|^8.0", + "symfony/yaml": "^7.4|^8.0" }, "type": "symfony-bundle", "autoload": { @@ -1896,7 +1838,7 @@ "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.3.4" + "source": "https://github.com/symfony/framework-bundle/tree/v8.1.0" }, "funding": [ { @@ -1907,45 +1849,49 @@ "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": "2023-08-16T18:04:38+00:00" + "time": "2026-05-29T05:06:50+00:00" }, { "name": "symfony/http-foundation", - "version": "v6.4.14", + "version": "v8.1.0", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "ba020a321a95519303a3f09ec2824d34d601c388" + "reference": "af11474600f06718086c2cda4fa6fa8d0a672e7e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/ba020a321a95519303a3f09ec2824d34d601c388", - "reference": "ba020a321a95519303a3f09ec2824d34d601c388", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/af11474600f06718086c2cda4fa6fa8d0a672e7e", + "reference": "af11474600f06718086c2cda4fa6fa8d0a672e7e", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.4.1", "symfony/deprecation-contracts": "^2.5|^3", - "symfony/polyfill-mbstring": "~1.1", - "symfony/polyfill-php83": "^1.27" + "symfony/polyfill-mbstring": "^1.1" }, "conflict": { - "symfony/cache": "<6.3" + "doctrine/dbal": "<4.3" }, "require-dev": { - "doctrine/dbal": "^2.13.1|^3|^4", + "doctrine/dbal": "^4.3", "predis/predis": "^1.1|^2.0", - "symfony/cache": "^6.3|^7.0", - "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" + "symfony/cache": "^7.4|^8.0", + "symfony/clock": "^7.4|^8.0", + "symfony/dependency-injection": "^7.4|^8.0", + "symfony/expression-language": "^7.4|^8.0", + "symfony/http-kernel": "^7.4|^8.0", + "symfony/mime": "^7.4|^8.0", + "symfony/rate-limiter": "^7.4|^8.0" }, "type": "library", "autoload": { @@ -1973,7 +1919,7 @@ "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.14" + "source": "https://github.com/symfony/http-foundation/tree/v8.1.0" }, "funding": [ { @@ -1984,81 +1930,77 @@ "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": "2024-11-05T16:39:55+00:00" + "time": "2026-05-29T05:06:50+00:00" }, { "name": "symfony/http-kernel", - "version": "v6.3.8", + "version": "v8.1.0", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "929202375ccf44a309c34aeca8305408442ebcc1" + "reference": "cefeb37c82eed3e0c42fa25ba64cd3a908d90f39" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/929202375ccf44a309c34aeca8305408442ebcc1", - "reference": "929202375ccf44a309c34aeca8305408442ebcc1", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/cefeb37c82eed3e0c42fa25ba64cd3a908d90f39", + "reference": "cefeb37c82eed3e0c42fa25ba64cd3a908d90f39", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.4.1", "psr/log": "^1|^2|^3", "symfony/deprecation-contracts": "^2.5|^3", - "symfony/error-handler": "^6.3", - "symfony/event-dispatcher": "^5.4|^6.0", - "symfony/http-foundation": "^6.3.4", + "symfony/error-handler": "^7.4|^8.0", + "symfony/event-dispatcher": "^7.4|^8.0", + "symfony/http-foundation": "^7.4|^8.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.3.4", - "symfony/doctrine-bridge": "<5.4", - "symfony/form": "<5.4", - "symfony/http-client": "<5.4", + "symfony/dependency-injection": "<8.1", + "symfony/flex": "<2.10", "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": "<5.4", - "symfony/var-dumper": "<6.3", - "twig/twig": "<2.13" + "symfony/var-dumper": "<8.1", + "symfony/web-profiler-bundle": "<8.1", + "twig/twig": "<3.21" }, "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", - "symfony/clock": "^6.2", - "symfony/config": "^6.1", - "symfony/console": "^5.4|^6.0", - "symfony/css-selector": "^5.4|^6.0", - "symfony/dependency-injection": "^6.3.4", - "symfony/dom-crawler": "^5.4|^6.0", - "symfony/expression-language": "^5.4|^6.0", - "symfony/finder": "^5.4|^6.0", + "symfony/browser-kit": "^7.4|^8.0", + "symfony/clock": "^7.4|^8.0", + "symfony/config": "^7.4|^8.0", + "symfony/console": "^7.4|^8.0", + "symfony/css-selector": "^7.4|^8.0", + "symfony/dependency-injection": "^8.1", + "symfony/dom-crawler": "^7.4|^8.0", + "symfony/expression-language": "^7.4|^8.0", + "symfony/finder": "^7.4|^8.0", "symfony/http-client-contracts": "^2.5|^3", - "symfony/process": "^5.4|^6.0", - "symfony/property-access": "^5.4.5|^6.0.5", - "symfony/routing": "^5.4|^6.0", - "symfony/serializer": "^6.3", - "symfony/stopwatch": "^5.4|^6.0", - "symfony/translation": "^5.4|^6.0", + "symfony/process": "^7.4|^8.0", + "symfony/property-access": "^7.4|^8.0", + "symfony/rate-limiter": "^7.4|^8.0", + "symfony/routing": "^7.4|^8.0", + "symfony/serializer": "^7.4|^8.0", + "symfony/stopwatch": "^7.4|^8.0", + "symfony/translation": "^7.4|^8.0", "symfony/translation-contracts": "^2.5|^3", - "symfony/uid": "^5.4|^6.0", - "symfony/validator": "^6.3", - "symfony/var-exporter": "^6.2", - "twig/twig": "^2.13|^3.0.4" + "symfony/uid": "^7.4|^8.0", + "symfony/validator": "^7.4|^8.0", + "symfony/var-dumper": "^8.1", + "symfony/var-exporter": "^7.4|^8.0", + "twig/twig": "^3.21" }, "type": "library", "autoload": { @@ -2086,7 +2028,7 @@ "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.3.8" + "source": "https://github.com/symfony/http-kernel/tree/v8.1.0" }, "funding": [ { @@ -2097,25 +2039,29 @@ "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": "2023-11-10T13:47:32+00:00" + "time": "2026-05-29T08:46:08+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.31.0", + "version": "v1.37.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638" + "reference": "141046a8f9477948ff284fa65be2095baafb94f2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/a3cc8b044a6ea513310cbd48ef7333b384945638", - "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/141046a8f9477948ff284fa65be2095baafb94f2", + "reference": "141046a8f9477948ff284fa65be2095baafb94f2", "shasum": "" }, "require": { @@ -2130,8 +2076,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -2165,7 +2111,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.37.0" }, "funding": [ { @@ -2176,41 +2122,45 @@ "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": "2024-09-09T11:45:10+00:00" + "time": "2026-04-10T16:19:22+00:00" }, { - "name": "symfony/polyfill-intl-grapheme", - "version": "v1.28.0", + "name": "symfony/polyfill-deepclone", + "version": "v1.38.2", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "875e90aeea2777b6f135677f618529449334a612" + "url": "https://github.com/symfony/polyfill-deepclone.git", + "reference": "c1b95c370cb2ee4ee221f0a317f5ae5dfae9a42e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/875e90aeea2777b6f135677f618529449334a612", - "reference": "875e90aeea2777b6f135677f618529449334a612", + "url": "https://api.github.com/repos/symfony/polyfill-deepclone/zipball/c1b95c370cb2ee4ee221f0a317f5ae5dfae9a42e", + "reference": "c1b95c370cb2ee4ee221f0a317f5ae5dfae9a42e", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=8.1" + }, + "provide": { + "ext-deepclone": "*" }, "suggest": { - "ext-intl": "For best performance" + "ext-deepclone": "For best performance" }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -2218,8 +2168,11 @@ "bootstrap.php" ], "psr-4": { - "Symfony\\Polyfill\\Intl\\Grapheme\\": "" - } + "Symfony\\Polyfill\\DeepClone\\": "" + }, + "classmap": [ + "Resources/stubs" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -2235,18 +2188,17 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill for intl's grapheme_* functions", + "description": "Symfony polyfill for the deepclone extension", "homepage": "https://symfony.com", "keywords": [ "compatibility", - "grapheme", - "intl", + "deepclone", "polyfill", "portable", "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-deepclone/tree/v1.38.2" }, "funding": [ { @@ -2257,41 +2209,42 @@ "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": "2023-01-26T09:26:14+00:00" + "time": "2026-06-08T20:10:26+00:00" }, { - "name": "symfony/polyfill-intl-normalizer", - "version": "v1.28.0", + "name": "symfony/polyfill-intl-grapheme", + "version": "v1.38.1", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92" + "url": "https://github.com/symfony/polyfill-intl-grapheme.git", + "reference": "e9247d281d694a5120554d9afaf54e070e88a603" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", - "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/e9247d281d694a5120554d9afaf54e070e88a603", + "reference": "e9247d281d694a5120554d9afaf54e070e88a603", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "suggest": { "ext-intl": "For best performance" }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -2299,11 +2252,8 @@ "bootstrap.php" ], "psr-4": { - "Symfony\\Polyfill\\Intl\\Normalizer\\": "" - }, - "classmap": [ - "Resources/stubs" - ] + "Symfony\\Polyfill\\Intl\\Grapheme\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -2319,18 +2269,18 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill for intl's Normalizer class and related functions", + "description": "Symfony polyfill for intl's grapheme_* functions", "homepage": "https://symfony.com", "keywords": [ "compatibility", + "grapheme", "intl", - "normalizer", "polyfill", "portable", "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.38.1" }, "funding": [ { @@ -2341,41 +2291,42 @@ "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": "2023-01-26T09:26:14+00:00" + "time": "2026-05-26T05:58:03+00:00" }, { - "name": "symfony/polyfill-mbstring", - "version": "v1.31.0", + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.38.0", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341" + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "2d446c214bdbe5b71bde5011b060a05fece3ae6b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/85181ba99b2345b0ef10ce42ecac37612d9fd341", - "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/2d446c214bdbe5b71bde5011b060a05fece3ae6b", + "reference": "2d446c214bdbe5b71bde5011b060a05fece3ae6b", "shasum": "" }, "require": { "php": ">=7.2" }, - "provide": { - "ext-mbstring": "*" - }, "suggest": { - "ext-mbstring": "For best performance" + "ext-intl": "For best performance" }, "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -2383,8 +2334,11 @@ "bootstrap.php" ], "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - } + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, + "classmap": [ + "Resources/stubs" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -2400,17 +2354,18 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill for the Mbstring extension", + "description": "Symfony polyfill for intl's Normalizer class and related functions", "homepage": "https://symfony.com", "keywords": [ "compatibility", - "mbstring", + "intl", + "normalizer", "polyfill", "portable", "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.38.0" }, "funding": [ { @@ -2421,35 +2376,46 @@ "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": "2024-09-09T11:45:10+00:00" + "time": "2026-05-25T13:48:31+00:00" }, { - "name": "symfony/polyfill-php83", - "version": "v1.31.0", + "name": "symfony/polyfill-mbstring", + "version": "v1.38.2", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php83.git", - "reference": "2fb86d65e2d424369ad2905e83b236a8805ba491" + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/2fb86d65e2d424369ad2905e83b236a8805ba491", - "reference": "2fb86d65e2d424369ad2905e83b236a8805ba491", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6", + "reference": "d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6", "shasum": "" }, "require": { + "ext-iconv": "*", "php": ">=7.2" }, + "provide": { + "ext-mbstring": "*" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -2457,11 +2423,8 @@ "bootstrap.php" ], "psr-4": { - "Symfony\\Polyfill\\Php83\\": "" - }, - "classmap": [ - "Resources/stubs" - ] + "Symfony\\Polyfill\\Mbstring\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -2477,16 +2440,17 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 8.3+ features to lower PHP versions", + "description": "Symfony polyfill for the Mbstring extension", "homepage": "https://symfony.com", "keywords": [ "compatibility", + "mbstring", "polyfill", "portable", "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php83/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.38.2" }, "funding": [ { @@ -2498,44 +2462,121 @@ "type": "github" }, { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-05-27T06:59:30+00:00" + }, + { + "name": "symfony/polyfill-php85", + "version": "v1.38.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php85.git", + "reference": "ba2ba04f3352cfa2dcbbcb90aee13ed967f505b1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php85/zipball/ba2ba04f3352cfa2dcbbcb90aee13ed967f505b1", + "reference": "ba2ba04f3352cfa2dcbbcb90aee13ed967f505b1", + "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\\Php85\\": "" + }, + "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.5+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php85/tree/v1.38.1" + }, + "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": "2024-09-09T11:45:10+00:00" + "time": "2026-05-26T02:25:22+00:00" }, { "name": "symfony/routing", - "version": "v6.3.3", + "version": "v8.1.0", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "e7243039ab663822ff134fbc46099b5fdfa16f6a" + "reference": "fe0bfec72c8a806109fb9c3a5f2b898fe0c76eb3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/e7243039ab663822ff134fbc46099b5fdfa16f6a", - "reference": "e7243039ab663822ff134fbc46099b5fdfa16f6a", + "url": "https://api.github.com/repos/symfony/routing/zipball/fe0bfec72c8a806109fb9c3a5f2b898fe0c76eb3", + "reference": "fe0bfec72c8a806109fb9c3a5f2b898fe0c76eb3", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.4.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", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/expression-language": "^5.4|^6.0", - "symfony/http-foundation": "^5.4|^6.0", - "symfony/yaml": "^5.4|^6.0" + "symfony/config": "^7.4|^8.0", + "symfony/dependency-injection": "^7.4|^8.0", + "symfony/expression-language": "^7.4|^8.0", + "symfony/http-foundation": "^7.4|^8.0", + "symfony/yaml": "^7.4|^8.0" }, "type": "library", "autoload": { @@ -2569,7 +2610,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v6.3.3" + "source": "https://github.com/symfony/routing/tree/v8.1.0" }, "funding": [ { @@ -2580,42 +2621,47 @@ "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": "2023-07-31T07:08:24+00:00" + "time": "2026-05-29T05:06:50+00:00" }, { "name": "symfony/service-contracts", - "version": "v3.3.0", + "version": "v3.7.0", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "40da9cc13ec349d9e4966ce18b5fbcd724ab10a4" + "reference": "d25d82433a80eba6aa0e6c24b61d7370d99e444a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/40da9cc13ec349d9e4966ce18b5fbcd724ab10a4", - "reference": "40da9cc13ec349d9e4966ce18b5fbcd724ab10a4", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/d25d82433a80eba6aa0e6c24b61d7370d99e444a", + "reference": "d25d82433a80eba6aa0e6c24b61d7370d99e444a", "shasum": "" }, "require": { "php": ">=8.1", - "psr/container": "^2.0" + "psr/container": "^1.1|^2.0", + "symfony/deprecation-contracts": "^2.5|^3" }, "conflict": { "ext-psr": "<1.1|>=2" }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "3.4-dev" - }, "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, + "branch-alias": { + "dev-main": "3.7-dev" } }, "autoload": { @@ -2651,7 +2697,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.3.0" + "source": "https://github.com/symfony/service-contracts/tree/v3.7.0" }, "funding": [ { @@ -2662,43 +2708,47 @@ "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": "2023-05-23T14:45:45+00:00" + "time": "2026-03-28T09:44:51+00:00" }, { "name": "symfony/string", - "version": "v6.3.8", + "version": "v8.1.0", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "13880a87790c76ef994c91e87efb96134522577a" + "reference": "afd5944f4005862d961efb85c8bbd5c523c4e3c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/13880a87790c76ef994c91e87efb96134522577a", - "reference": "13880a87790c76ef994c91e87efb96134522577a", + "url": "https://api.github.com/repos/symfony/string/zipball/afd5944f4005862d961efb85c8bbd5c523c4e3c9", + "reference": "afd5944f4005862d961efb85c8bbd5c523c4e3c9", "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" + "php": ">=8.4.1", + "symfony/polyfill-ctype": "^1.8", + "symfony/polyfill-intl-grapheme": "^1.33", + "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", - "symfony/http-client": "^5.4|^6.0", - "symfony/intl": "^6.2", + "symfony/emoji": "^7.4|^8.0", + "symfony/http-client": "^7.4|^8.0", + "symfony/intl": "^7.4|^8.0", "symfony/translation-contracts": "^2.5|^3.0", - "symfony/var-exporter": "^5.4|^6.0" + "symfony/var-exporter": "^7.4|^8.0" }, "type": "library", "autoload": { @@ -2737,7 +2787,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.3.8" + "source": "https://github.com/symfony/string/tree/v8.1.0" }, "funding": [ { @@ -2748,43 +2798,45 @@ "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": "2023-11-09T08:28:21+00:00" + "time": "2026-05-29T05:06:50+00:00" }, { "name": "symfony/var-dumper", - "version": "v6.4.15", + "version": "v8.1.0", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "38254d5a5ac2e61f2b52f9caf54e7aa3c9d36b80" + "reference": "c2c4df1d21477cc21c9f6dc1b14d07c3abc4963e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/38254d5a5ac2e61f2b52f9caf54e7aa3c9d36b80", - "reference": "38254d5a5ac2e61f2b52f9caf54e7aa3c9d36b80", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/c2c4df1d21477cc21c9f6dc1b14d07c3abc4963e", + "reference": "c2c4df1d21477cc21c9f6dc1b14d07c3abc4963e", "shasum": "" }, "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/polyfill-mbstring": "~1.0" + "php": ">=8.4.1", + "symfony/polyfill-mbstring": "^1.0" }, "conflict": { - "symfony/console": "<5.4" + "symfony/console": "<7.4", + "symfony/error-handler": "<7.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" + "symfony/console": "^7.4|^8.0", + "symfony/http-kernel": "^7.4|^8.0", + "symfony/process": "^7.4|^8.0", + "symfony/uid": "^7.4|^8.0", + "twig/twig": "^3.12" }, "bin": [ "Resources/bin/var-dump-server" @@ -2822,7 +2874,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.4.15" + "source": "https://github.com/symfony/var-dumper/tree/v8.1.0" }, "funding": [ { @@ -2833,32 +2885,40 @@ "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": "2024-11-08T15:28:48+00:00" + "time": "2026-05-29T05:06:50+00:00" }, { "name": "symfony/var-exporter", - "version": "v6.3.4", + "version": "v8.1.0", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "df1f8aac5751871b83d30bf3e2c355770f8f0691" + "reference": "2dd18582c5f6c024db9fc0ff9c76d873af726f34" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/df1f8aac5751871b83d30bf3e2c355770f8f0691", - "reference": "df1f8aac5751871b83d30bf3e2c355770f8f0691", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/2dd18582c5f6c024db9fc0ff9c76d873af726f34", + "reference": "2dd18582c5f6c024db9fc0ff9c76d873af726f34", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.4.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-deepclone": "^1.37" }, "require-dev": { - "symfony/var-dumper": "^5.4|^6.0" + "symfony/property-access": "^7.4|^8.0", + "symfony/serializer": "^7.4|^8.0", + "symfony/var-dumper": "^7.4|^8.0" }, "type": "library", "autoload": { @@ -2883,11 +2943,12 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Allows exporting any serializable PHP data structure to plain PHP code", + "description": "Provides tools to export, instantiate, hydrate, clone and lazy-load PHP objects", "homepage": "https://symfony.com", "keywords": [ "clone", "construct", + "deep-clone", "export", "hydrate", "instantiate", @@ -2896,7 +2957,7 @@ "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v6.3.4" + "source": "https://github.com/symfony/var-exporter/tree/v8.1.0" }, "funding": [ { @@ -2907,39 +2968,115 @@ "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": "2023-08-16T18:14:47+00:00" + "time": "2026-05-29T05:06:50+00:00" } ], "packages-dev": [ + { + "name": "clue/ndjson-react", + "version": "v1.3.0", + "source": { + "type": "git", + "url": "https://github.com/clue/reactphp-ndjson.git", + "reference": "392dc165fce93b5bb5c637b67e59619223c931b0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/clue/reactphp-ndjson/zipball/392dc165fce93b5bb5c637b67e59619223c931b0", + "reference": "392dc165fce93b5bb5c637b67e59619223c931b0", + "shasum": "" + }, + "require": { + "php": ">=5.3", + "react/stream": "^1.2" + }, + "require-dev": { + "phpunit/phpunit": "^9.5 || ^5.7 || ^4.8.35", + "react/event-loop": "^1.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "Clue\\React\\NDJson\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christian Lück", + "email": "christian@clue.engineering" + } + ], + "description": "Streaming newline-delimited JSON (NDJSON) parser and encoder for ReactPHP.", + "homepage": "https://github.com/clue/reactphp-ndjson", + "keywords": [ + "NDJSON", + "json", + "jsonlines", + "newline", + "reactphp", + "streaming" + ], + "support": { + "issues": "https://github.com/clue/reactphp-ndjson/issues", + "source": "https://github.com/clue/reactphp-ndjson/tree/v1.3.0" + }, + "funding": [ + { + "url": "https://clue.engineering/support", + "type": "custom" + }, + { + "url": "https://github.com/clue", + "type": "github" + } + ], + "time": "2022-12-23T10:58:28+00:00" + }, { "name": "composer/pcre", - "version": "3.1.0", + "version": "3.3.2", "source": { "type": "git", "url": "https://github.com/composer/pcre.git", - "reference": "4bff79ddd77851fe3cdd11616ed3f92841ba5bd2" + "reference": "b2bed4734f0cc156ee1fe9c0da2550420d99a21e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/pcre/zipball/4bff79ddd77851fe3cdd11616ed3f92841ba5bd2", - "reference": "4bff79ddd77851fe3cdd11616ed3f92841ba5bd2", + "url": "https://api.github.com/repos/composer/pcre/zipball/b2bed4734f0cc156ee1fe9c0da2550420d99a21e", + "reference": "b2bed4734f0cc156ee1fe9c0da2550420d99a21e", "shasum": "" }, "require": { "php": "^7.4 || ^8.0" }, + "conflict": { + "phpstan/phpstan": "<1.11.10" + }, "require-dev": { - "phpstan/phpstan": "^1.3", - "phpstan/phpstan-strict-rules": "^1.1", - "symfony/phpunit-bridge": "^5" + "phpstan/phpstan": "^1.12 || ^2", + "phpstan/phpstan-strict-rules": "^1 || ^2", + "phpunit/phpunit": "^8 || ^9" }, "type": "library", "extra": { + "phpstan": { + "includes": [ + "extension.neon" + ] + }, "branch-alias": { "dev-main": "3.x-dev" } @@ -2969,7 +3106,7 @@ ], "support": { "issues": "https://github.com/composer/pcre/issues", - "source": "https://github.com/composer/pcre/tree/3.1.0" + "source": "https://github.com/composer/pcre/tree/3.3.2" }, "funding": [ { @@ -2985,28 +3122,28 @@ "type": "tidelift" } ], - "time": "2022-11-17T09:50:14+00:00" + "time": "2024-11-12T16:29:46+00:00" }, { "name": "composer/semver", - "version": "3.3.2", + "version": "3.4.4", "source": { "type": "git", "url": "https://github.com/composer/semver.git", - "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9" + "reference": "198166618906cb2de69b95d7d47e5fa8aa1b2b95" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/3953f23262f2bff1919fc82183ad9acb13ff62c9", - "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9", + "url": "https://api.github.com/repos/composer/semver/zipball/198166618906cb2de69b95d7d47e5fa8aa1b2b95", + "reference": "198166618906cb2de69b95d7d47e5fa8aa1b2b95", "shasum": "" }, "require": { "php": "^5.3.2 || ^7.0 || ^8.0" }, "require-dev": { - "phpstan/phpstan": "^1.4", - "symfony/phpunit-bridge": "^4.2 || ^5" + "phpstan/phpstan": "^1.11", + "symfony/phpunit-bridge": "^3 || ^7" }, "type": "library", "extra": { @@ -3048,9 +3185,9 @@ "versioning" ], "support": { - "irc": "irc://irc.freenode.org/composer", + "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/semver/issues", - "source": "https://github.com/composer/semver/tree/3.3.2" + "source": "https://github.com/composer/semver/tree/3.4.4" }, "funding": [ { @@ -3060,26 +3197,22 @@ { "url": "https://github.com/composer", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" } ], - "time": "2022-04-01T19:23:25+00:00" + "time": "2025-08-20T19:15:30+00:00" }, { "name": "composer/xdebug-handler", - "version": "3.0.3", + "version": "3.0.5", "source": { "type": "git", "url": "https://github.com/composer/xdebug-handler.git", - "reference": "ced299686f41dce890debac69273b47ffe98a40c" + "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/ced299686f41dce890debac69273b47ffe98a40c", - "reference": "ced299686f41dce890debac69273b47ffe98a40c", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/6c1925561632e83d60a44492e0b344cf48ab85ef", + "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef", "shasum": "" }, "require": { @@ -3090,7 +3223,7 @@ "require-dev": { "phpstan/phpstan": "^1.0", "phpstan/phpstan-strict-rules": "^1.1", - "symfony/phpunit-bridge": "^6.0" + "phpunit/phpunit": "^8.5 || ^9.6 || ^10.5" }, "type": "library", "autoload": { @@ -3114,9 +3247,9 @@ "performance" ], "support": { - "irc": "irc://irc.freenode.org/composer", + "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/xdebug-handler/issues", - "source": "https://github.com/composer/xdebug-handler/tree/3.0.3" + "source": "https://github.com/composer/xdebug-handler/tree/3.0.5" }, "funding": [ { @@ -3132,109 +3265,33 @@ "type": "tidelift" } ], - "time": "2022-02-25T21:32:43+00:00" - }, - { - "name": "doctrine/annotations", - "version": "2.0.1", - "source": { - "type": "git", - "url": "https://github.com/doctrine/annotations.git", - "reference": "e157ef3f3124bbf6fe7ce0ffd109e8a8ef284e7f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/annotations/zipball/e157ef3f3124bbf6fe7ce0ffd109e8a8ef284e7f", - "reference": "e157ef3f3124bbf6fe7ce0ffd109e8a8ef284e7f", - "shasum": "" - }, - "require": { - "doctrine/lexer": "^2 || ^3", - "ext-tokenizer": "*", - "php": "^7.2 || ^8.0", - "psr/cache": "^1 || ^2 || ^3" - }, - "require-dev": { - "doctrine/cache": "^2.0", - "doctrine/coding-standard": "^10", - "phpstan/phpstan": "^1.8.0", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "symfony/cache": "^5.4 || ^6", - "vimeo/psalm": "^4.10" - }, - "suggest": { - "php": "PHP 8.0 or higher comes with attributes, a native replacement for annotations" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations" - } - }, - "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": "Docblock Annotations Parser", - "homepage": "https://www.doctrine-project.org/projects/annotations.html", - "keywords": [ - "annotations", - "docblock", - "parser" - ], - "support": { - "issues": "https://github.com/doctrine/annotations/issues", - "source": "https://github.com/doctrine/annotations/tree/2.0.1" - }, - "time": "2023-02-02T22:02:53+00:00" + "time": "2024-05-06T16:37:16+00:00" }, { "name": "doctrine/collections", - "version": "2.1.3", + "version": "2.6.0", "source": { "type": "git", "url": "https://github.com/doctrine/collections.git", - "reference": "3023e150f90a38843856147b58190aa8b46cc155" + "reference": "7713da39d8e237f28411d6a616a3dce5e20d5de2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/collections/zipball/3023e150f90a38843856147b58190aa8b46cc155", - "reference": "3023e150f90a38843856147b58190aa8b46cc155", + "url": "https://api.github.com/repos/doctrine/collections/zipball/7713da39d8e237f28411d6a616a3dce5e20d5de2", + "reference": "7713da39d8e237f28411d6a616a3dce5e20d5de2", "shasum": "" }, "require": { "doctrine/deprecations": "^1", - "php": "^8.1" + "php": "^8.1", + "symfony/polyfill-php84": "^1.30" }, "require-dev": { - "doctrine/coding-standard": "^10.0", + "doctrine/coding-standard": "^14", "ext-json": "*", - "phpstan/phpstan": "^1.8", - "phpstan/phpstan-phpunit": "^1.0", - "phpunit/phpunit": "^9.5", - "vimeo/psalm": "^5.11" + "phpstan/phpstan": "^2.1.30", + "phpstan/phpstan-phpunit": "^2.0.7", + "phpunit/phpunit": "^10.5.58 || ^11.5.42 || ^12.4" }, "type": "library", "autoload": { @@ -3278,7 +3335,7 @@ ], "support": { "issues": "https://github.com/doctrine/collections/issues", - "source": "https://github.com/doctrine/collections/tree/2.1.3" + "source": "https://github.com/doctrine/collections/tree/2.6.0" }, "funding": [ { @@ -3294,40 +3351,56 @@ "type": "tidelift" } ], - "time": "2023-07-06T15:15:36+00:00" + "time": "2026-01-15T10:01:58+00:00" }, { - "name": "doctrine/common", - "version": "3.4.3", + "name": "doctrine/data-fixtures", + "version": "2.2.1", "source": { "type": "git", - "url": "https://github.com/doctrine/common.git", - "reference": "8b5e5650391f851ed58910b3e3d48a71062eeced" + "url": "https://github.com/doctrine/data-fixtures.git", + "reference": "bf7ac3a050b54b261cedfb3d0a44733819062275" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/common/zipball/8b5e5650391f851ed58910b3e3d48a71062eeced", - "reference": "8b5e5650391f851ed58910b3e3d48a71062eeced", + "url": "https://api.github.com/repos/doctrine/data-fixtures/zipball/bf7ac3a050b54b261cedfb3d0a44733819062275", + "reference": "bf7ac3a050b54b261cedfb3d0a44733819062275", "shasum": "" }, "require": { - "doctrine/persistence": "^2.0 || ^3.0", - "php": "^7.1 || ^8.0" + "doctrine/persistence": "^3.1 || ^4.0", + "php": "^8.1", + "psr/log": "^1.1 || ^2 || ^3" + }, + "conflict": { + "doctrine/dbal": "<3.5 || >=5", + "doctrine/orm": "<2.14 || >=4", + "doctrine/phpcr-odm": "<1.3.0" }, "require-dev": { - "doctrine/coding-standard": "^9.0 || ^10.0", - "doctrine/collections": "^1", - "phpstan/phpstan": "^1.4.1", - "phpstan/phpstan-phpunit": "^1", - "phpunit/phpunit": "^7.5.20 || ^8.5 || ^9.0", - "squizlabs/php_codesniffer": "^3.0", - "symfony/phpunit-bridge": "^6.1", - "vimeo/psalm": "^4.4" + "doctrine/coding-standard": "^14", + "doctrine/dbal": "^3.5 || ^4", + "doctrine/mongodb-odm": "^1.3.0 || ^2.0.0", + "doctrine/orm": "^2.14 || ^3", + "doctrine/phpcr-odm": "^1.8 || ^2.0", + "ext-sqlite3": "*", + "fig/log-test": "^1", + "jackalope/jackalope-fs": "*", + "phpstan/phpstan": "2.1.46", + "phpunit/phpunit": "10.5.63 || 12.5.12", + "symfony/cache": "^6.4 || ^7 || ^8", + "symfony/var-exporter": "^6.4 || ^7 || ^8" + }, + "suggest": { + "alcaeus/mongo-php-adapter": "For using MongoDB ODM 1.3 with PHP 7 (deprecated)", + "doctrine/mongodb-odm": "For loading MongoDB ODM fixtures", + "doctrine/orm": "For loading ORM fixtures", + "doctrine/phpcr-odm": "For loading PHPCR ODM fixtures" }, "type": "library", "autoload": { "psr-4": { - "Doctrine\\Common\\": "src" + "Doctrine\\Common\\DataFixtures\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -3335,41 +3408,19 @@ "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": "PHP Doctrine Common project is a library that provides additional functionality that other Doctrine projects depend on such as better reflection support, proxies and much more.", - "homepage": "https://www.doctrine-project.org/projects/common.html", + "description": "Data Fixtures for all Doctrine Object Managers", + "homepage": "https://www.doctrine-project.org", "keywords": [ - "common", - "doctrine", - "php" + "database" ], "support": { - "issues": "https://github.com/doctrine/common/issues", - "source": "https://github.com/doctrine/common/tree/3.4.3" + "issues": "https://github.com/doctrine/data-fixtures/issues", + "source": "https://github.com/doctrine/data-fixtures/tree/2.2.1" }, "funding": [ { @@ -3381,131 +3432,52 @@ "type": "patreon" }, { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcommon", + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdata-fixtures", "type": "tidelift" } ], - "time": "2022-10-09T11:47:59+00:00" + "time": "2026-04-01T13:56:01+00:00" }, { - "name": "doctrine/data-fixtures", - "version": "1.6.7", + "name": "doctrine/doctrine-fixtures-bundle", + "version": "4.3.1", "source": { "type": "git", - "url": "https://github.com/doctrine/data-fixtures.git", - "reference": "ae4e845decbe177348fdbecd04331f4fb96aa301" + "url": "https://github.com/doctrine/DoctrineFixturesBundle.git", + "reference": "9e013ed10d49bf7746b07204d336384a7d9b5a4d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/data-fixtures/zipball/ae4e845decbe177348fdbecd04331f4fb96aa301", - "reference": "ae4e845decbe177348fdbecd04331f4fb96aa301", + "url": "https://api.github.com/repos/doctrine/DoctrineFixturesBundle/zipball/9e013ed10d49bf7746b07204d336384a7d9b5a4d", + "reference": "9e013ed10d49bf7746b07204d336384a7d9b5a4d", "shasum": "" }, "require": { - "doctrine/deprecations": "^0.5.3 || ^1.0", - "doctrine/persistence": "^1.3.3 || ^2.0 || ^3.0", - "php": "^7.2 || ^8.0" + "doctrine/data-fixtures": "^2.2", + "doctrine/doctrine-bundle": "^2.2 || ^3.0", + "doctrine/orm": "^2.14.0 || ^3.0", + "doctrine/persistence": "^2.4 || ^3.0 || ^4.0", + "php": "^8.1", + "psr/log": "^2 || ^3", + "symfony/config": "^6.4 || ^7.0 || ^8.0", + "symfony/console": "^6.4 || ^7.0 || ^8.0", + "symfony/dependency-injection": "^6.4 || ^7.0 || ^8.0", + "symfony/deprecation-contracts": "^2.1 || ^3", + "symfony/doctrine-bridge": "^6.4.16 || ^7.1.9 || ^8.0", + "symfony/http-kernel": "^6.4 || ^7.0 || ^8.0" }, "conflict": { - "doctrine/dbal": "<2.13", - "doctrine/orm": "<2.14", - "doctrine/phpcr-odm": "<1.3.0" - }, - "require-dev": { - "doctrine/coding-standard": "^11.0", - "doctrine/dbal": "^2.13 || ^3.0", - "doctrine/mongodb-odm": "^1.3.0 || ^2.0.0", - "doctrine/orm": "^2.14", - "ext-sqlite3": "*", - "phpstan/phpstan": "^1.5", - "phpunit/phpunit": "^8.5 || ^9.5 || ^10.0", - "symfony/cache": "^5.0 || ^6.0", - "vimeo/psalm": "^4.10 || ^5.9" - }, - "suggest": { - "alcaeus/mongo-php-adapter": "For using MongoDB ODM 1.3 with PHP 7 (deprecated)", - "doctrine/mongodb-odm": "For loading MongoDB ODM fixtures", - "doctrine/orm": "For loading ORM fixtures", - "doctrine/phpcr-odm": "For loading PHPCR ODM fixtures" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Common\\DataFixtures\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - } - ], - "description": "Data Fixtures for all Doctrine Object Managers", - "homepage": "https://www.doctrine-project.org", - "keywords": [ - "database" - ], - "support": { - "issues": "https://github.com/doctrine/data-fixtures/issues", - "source": "https://github.com/doctrine/data-fixtures/tree/1.6.7" - }, - "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%2Fdata-fixtures", - "type": "tidelift" - } - ], - "time": "2023-08-17T21:15:33+00:00" - }, - { - "name": "doctrine/doctrine-fixtures-bundle", - "version": "3.4.4", - "source": { - "type": "git", - "url": "https://github.com/doctrine/DoctrineFixturesBundle.git", - "reference": "9ec3139c52a42e94c9fd1e95f8d2bca94326edfb" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/DoctrineFixturesBundle/zipball/9ec3139c52a42e94c9fd1e95f8d2bca94326edfb", - "reference": "9ec3139c52a42e94c9fd1e95f8d2bca94326edfb", - "shasum": "" - }, - "require": { - "doctrine/data-fixtures": "^1.3", - "doctrine/doctrine-bundle": "^1.11|^2.0", - "doctrine/orm": "^2.6.0", - "doctrine/persistence": "^1.3.7|^2.0|^3.0", - "php": "^7.1 || ^8.0", - "symfony/config": "^3.4|^4.3|^5.0|^6.0", - "symfony/console": "^3.4|^4.3|^5.0|^6.0", - "symfony/dependency-injection": "^3.4.47|^4.3|^5.0|^6.0", - "symfony/doctrine-bridge": "^3.4|^4.1|^5.0|^6.0", - "symfony/http-kernel": "^3.4|^4.3|^5.0|^6.0" + "doctrine/dbal": "< 3" }, "require-dev": { - "doctrine/coding-standard": "^9", - "phpstan/phpstan": "^1.4.10", - "phpunit/phpunit": "^7.5.20 || ^8.5.26 || ^9.5.20", - "symfony/phpunit-bridge": "^6.0.8", - "vimeo/psalm": "^4.22" + "doctrine/coding-standard": "14.0.0", + "phpstan/phpstan": "2.1.11", + "phpunit/phpunit": "^10.5.38 || 11.4.14" }, "type": "symfony-bundle", "autoload": { "psr-4": { - "Doctrine\\Bundle\\FixturesBundle\\": "" + "Doctrine\\Bundle\\FixturesBundle\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -3534,7 +3506,7 @@ ], "support": { "issues": "https://github.com/doctrine/DoctrineFixturesBundle/issues", - "source": "https://github.com/doctrine/DoctrineFixturesBundle/tree/3.4.4" + "source": "https://github.com/doctrine/DoctrineFixturesBundle/tree/4.3.1" }, "funding": [ { @@ -3550,37 +3522,36 @@ "type": "tidelift" } ], - "time": "2023-05-02T15:12:16+00:00" + "time": "2025-12-03T16:05:42+00:00" }, { "name": "doctrine/inflector", - "version": "2.0.8", + "version": "2.1.0", "source": { "type": "git", "url": "https://github.com/doctrine/inflector.git", - "reference": "f9301a5b2fb1216b2b08f02ba04dc45423db6bff" + "reference": "6d6c96277ea252fc1304627204c3d5e6e15faa3b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/inflector/zipball/f9301a5b2fb1216b2b08f02ba04dc45423db6bff", - "reference": "f9301a5b2fb1216b2b08f02ba04dc45423db6bff", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/6d6c96277ea252fc1304627204c3d5e6e15faa3b", + "reference": "6d6c96277ea252fc1304627204c3d5e6e15faa3b", "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" + "doctrine/coding-standard": "^12.0 || ^13.0", + "phpstan/phpstan": "^1.12 || ^2.0", + "phpstan/phpstan-phpunit": "^1.4 || ^2.0", + "phpstan/phpstan-strict-rules": "^1.6 || ^2.0", + "phpunit/phpunit": "^8.5 || ^12.2" }, "type": "library", "autoload": { "psr-4": { - "Doctrine\\Inflector\\": "lib/Doctrine/Inflector" + "Doctrine\\Inflector\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -3625,7 +3596,7 @@ ], "support": { "issues": "https://github.com/doctrine/inflector/issues", - "source": "https://github.com/doctrine/inflector/tree/2.0.8" + "source": "https://github.com/doctrine/inflector/tree/2.1.0" }, "funding": [ { @@ -3641,34 +3612,33 @@ "type": "tidelift" } ], - "time": "2023-06-16T13:40:37+00:00" + "time": "2025-08-10T19:31:58+00:00" }, { "name": "doctrine/instantiator", - "version": "2.0.0", + "version": "2.1.0", "source": { "type": "git", "url": "https://github.com/doctrine/instantiator.git", - "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0" + "reference": "23da848e1a2308728fe5fdddabf4be17ff9720c7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/c6222283fa3f4ac679f8b9ced9a4e23f163e80d0", - "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/23da848e1a2308728fe5fdddabf4be17ff9720c7", + "reference": "23da848e1a2308728fe5fdddabf4be17ff9720c7", "shasum": "" }, "require": { - "php": "^8.1" + "php": "^8.4" }, "require-dev": { - "doctrine/coding-standard": "^11", + "doctrine/coding-standard": "^14", "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" + "phpstan/phpstan": "^2.1", + "phpstan/phpstan-phpunit": "^2.0", + "phpunit/phpunit": "^10.5.58" }, "type": "library", "autoload": { @@ -3695,7 +3665,7 @@ ], "support": { "issues": "https://github.com/doctrine/instantiator/issues", - "source": "https://github.com/doctrine/instantiator/tree/2.0.0" + "source": "https://github.com/doctrine/instantiator/tree/2.1.0" }, "funding": [ { @@ -3711,32 +3681,31 @@ "type": "tidelift" } ], - "time": "2022-12-30T00:23:10+00:00" + "time": "2026-01-05T06:47:08+00:00" }, { "name": "doctrine/lexer", - "version": "2.1.0", + "version": "3.0.1", "source": { "type": "git", "url": "https://github.com/doctrine/lexer.git", - "reference": "39ab8fcf5a51ce4b85ca97c7a7d033eb12831124" + "reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/39ab8fcf5a51ce4b85ca97c7a7d033eb12831124", - "reference": "39ab8fcf5a51ce4b85ca97c7a7d033eb12831124", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd", + "reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd", "shasum": "" }, "require": { - "doctrine/deprecations": "^1.0", - "php": "^7.1 || ^8.0" + "php": "^8.1" }, "require-dev": { - "doctrine/coding-standard": "^9 || ^10", - "phpstan/phpstan": "^1.3", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "doctrine/coding-standard": "^12", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^10.5", "psalm/plugin-phpunit": "^0.18.3", - "vimeo/psalm": "^4.11 || ^5.0" + "vimeo/psalm": "^5.21" }, "type": "library", "autoload": { @@ -3773,7 +3742,7 @@ ], "support": { "issues": "https://github.com/doctrine/lexer/issues", - "source": "https://github.com/doctrine/lexer/tree/2.1.0" + "source": "https://github.com/doctrine/lexer/tree/3.0.1" }, "funding": [ { @@ -3789,69 +3758,56 @@ "type": "tidelift" } ], - "time": "2022-12-14T08:49:07+00:00" + "time": "2024-02-05T11:56:58+00:00" }, { "name": "doctrine/orm", - "version": "2.16.1", + "version": "3.6.7", "source": { "type": "git", "url": "https://github.com/doctrine/orm.git", - "reference": "597a63a86ca8c5f9d1ec2dc74fe3d1269d43434a" + "reference": "bc217c0e19c3a9eadfa67697143b87c9ba01272c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/orm/zipball/597a63a86ca8c5f9d1ec2dc74fe3d1269d43434a", - "reference": "597a63a86ca8c5f9d1ec2dc74fe3d1269d43434a", + "url": "https://api.github.com/repos/doctrine/orm/zipball/bc217c0e19c3a9eadfa67697143b87c9ba01272c", + "reference": "bc217c0e19c3a9eadfa67697143b87c9ba01272c", "shasum": "" }, "require": { "composer-runtime-api": "^2", - "doctrine/cache": "^1.12.1 || ^2.1.1", - "doctrine/collections": "^1.5 || ^2.1", - "doctrine/common": "^3.0.3", - "doctrine/dbal": "^2.13.1 || ^3.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": "^2", - "doctrine/persistence": "^2.4 || ^3", + "doctrine/lexer": "^3", + "doctrine/persistence": "^3.3.1 || ^4", "ext-ctype": "*", - "php": "^7.1 || ^8.0", + "php": "^8.1", "psr/cache": "^1 || ^2 || ^3", - "symfony/console": "^4.2 || ^5.0 || ^6.0", - "symfony/polyfill-php72": "^1.23", - "symfony/polyfill-php80": "^1.16" - }, - "conflict": { - "doctrine/annotations": "<1.13 || >= 3.0" + "symfony/console": "^5.4 || ^6.0 || ^7.0 || ^8.0", + "symfony/var-exporter": "^6.3.9 || ^7.0 || ^8.0" }, "require-dev": { - "doctrine/annotations": "^1.13 || ^2", - "doctrine/coding-standard": "^9.0.2 || ^12.0", - "phpbench/phpbench": "^0.16.10 || ^1.0", - "phpstan/phpstan": "~1.4.10 || 1.10.28", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6", + "doctrine/coding-standard": "^14.0", + "phpbench/phpbench": "^1.0", + "phpstan/extension-installer": "^1.4", + "phpstan/phpstan": "2.1.23", + "phpstan/phpstan-deprecation-rules": "^2", + "phpunit/phpunit": "^10.5.0 || ^11.5", "psr/log": "^1 || ^2 || ^3", - "squizlabs/php_codesniffer": "3.7.2", - "symfony/cache": "^4.4 || ^5.4 || ^6.0", - "symfony/var-exporter": "^4.4 || ^5.4 || ^6.2", - "symfony/yaml": "^3.4 || ^4.0 || ^5.0 || ^6.0", - "vimeo/psalm": "4.30.0 || 5.14.1" + "symfony/cache": "^5.4 || ^6.2 || ^7.0 || ^8.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", - "symfony/yaml": "If you want to use YAML Metadata Mapping Driver" + "symfony/cache": "Provides cache support for Setup Tool with doctrine/cache 2.0" }, - "bin": [ - "bin/doctrine" - ], "type": "library", "autoload": { "psr-4": { - "Doctrine\\ORM\\": "lib/Doctrine/ORM" + "Doctrine\\ORM\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -3888,60 +3844,242 @@ ], "support": { "issues": "https://github.com/doctrine/orm/issues", - "source": "https://github.com/doctrine/orm/tree/2.16.1" + "source": "https://github.com/doctrine/orm/tree/3.6.7" + }, + "time": "2026-05-25T16:45:47+00:00" + }, + { + "name": "ergebnis/agent-detector", + "version": "1.2.0", + "source": { + "type": "git", + "url": "https://github.com/ergebnis/agent-detector.git", + "reference": "e211f17928c8b95a51e06040792d57f5462fb271" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ergebnis/agent-detector/zipball/e211f17928c8b95a51e06040792d57f5462fb271", + "reference": "e211f17928c8b95a51e06040792d57f5462fb271", + "shasum": "" + }, + "require": { + "php": "~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0 || ~8.6.0" + }, + "require-dev": { + "ergebnis/composer-normalize": "^2.51.0", + "ergebnis/license": "^2.7.0", + "ergebnis/php-cs-fixer-config": "^6.60.2", + "ergebnis/phpstan-rules": "^2.13.1", + "ergebnis/phpunit-slow-test-detector": "^2.24.0", + "ergebnis/rector-rules": "^1.18.1", + "fakerphp/faker": "^1.24.1", + "infection/infection": "^0.26.6", + "phpstan/extension-installer": "^1.4.3", + "phpstan/phpstan": "^2.1.54", + "phpstan/phpstan-deprecation-rules": "^2.0.4", + "phpstan/phpstan-phpunit": "^2.0.16", + "phpstan/phpstan-strict-rules": "^2.0.10", + "phpunit/phpunit": "^9.6.34", + "rector/rector": "^2.4.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.2-dev" + }, + "composer-normalize": { + "indent-size": 2, + "indent-style": "space" + } + }, + "autoload": { + "psr-4": { + "Ergebnis\\AgentDetector\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Andreas Möller", + "email": "am@localheinz.com", + "homepage": "https://localheinz.com" + } + ], + "description": "Provides a detector for detecting the presence of an agent.", + "homepage": "https://github.com/ergebnis/agent-detector", + "support": { + "issues": "https://github.com/ergebnis/agent-detector/issues", + "security": "https://github.com/ergebnis/agent-detector/blob/main/.github/SECURITY.md", + "source": "https://github.com/ergebnis/agent-detector" + }, + "time": "2026-05-07T08:19:07+00:00" + }, + { + "name": "evenement/evenement", + "version": "v3.0.2", + "source": { + "type": "git", + "url": "https://github.com/igorw/evenement.git", + "reference": "0a16b0d71ab13284339abb99d9d2bd813640efbc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/igorw/evenement/zipball/0a16b0d71ab13284339abb99d9d2bd813640efbc", + "reference": "0a16b0d71ab13284339abb99d9d2bd813640efbc", + "shasum": "" + }, + "require": { + "php": ">=7.0" + }, + "require-dev": { + "phpunit/phpunit": "^9 || ^6" + }, + "type": "library", + "autoload": { + "psr-4": { + "Evenement\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Igor Wiedler", + "email": "igor@wiedler.ch" + } + ], + "description": "Événement is a very simple event dispatching library for PHP", + "keywords": [ + "event-dispatcher", + "event-emitter" + ], + "support": { + "issues": "https://github.com/igorw/evenement/issues", + "source": "https://github.com/igorw/evenement/tree/v3.0.2" + }, + "time": "2023-08-08T05:53:35+00:00" + }, + { + "name": "fidry/cpu-core-counter", + "version": "1.3.0", + "source": { + "type": "git", + "url": "https://github.com/theofidry/cpu-core-counter.git", + "reference": "db9508f7b1474469d9d3c53b86f817e344732678" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/db9508f7b1474469d9d3c53b86f817e344732678", + "reference": "db9508f7b1474469d9d3c53b86f817e344732678", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "fidry/makefile": "^0.2.0", + "fidry/php-cs-fixer-config": "^1.1.2", + "phpstan/extension-installer": "^1.2.0", + "phpstan/phpstan": "^2.0", + "phpstan/phpstan-deprecation-rules": "^2.0.0", + "phpstan/phpstan-phpunit": "^2.0", + "phpstan/phpstan-strict-rules": "^2.0", + "phpunit/phpunit": "^8.5.31 || ^9.5.26", + "webmozarts/strict-phpunit": "^7.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "Fidry\\CpuCoreCounter\\": "src/" + } }, - "time": "2023-08-09T13:05:08+00:00" + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Théo FIDRY", + "email": "theo.fidry@gmail.com" + } + ], + "description": "Tiny utility to get the number of CPU cores.", + "keywords": [ + "CPU", + "core" + ], + "support": { + "issues": "https://github.com/theofidry/cpu-core-counter/issues", + "source": "https://github.com/theofidry/cpu-core-counter/tree/1.3.0" + }, + "funding": [ + { + "url": "https://github.com/theofidry", + "type": "github" + } + ], + "time": "2025-08-14T07:29:31+00:00" }, { "name": "friendsofphp/php-cs-fixer", - "version": "v3.23.0", + "version": "v3.95.5", "source": { "type": "git", "url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git", - "reference": "35af3cbbacfa91e164b252a28ec0b644f1ed4e78" + "reference": "7f86d8763063f5d2e2e2d0e1e45bb2f15895361d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/35af3cbbacfa91e164b252a28ec0b644f1ed4e78", - "reference": "35af3cbbacfa91e164b252a28ec0b644f1ed4e78", + "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/7f86d8763063f5d2e2e2d0e1e45bb2f15895361d", + "reference": "7f86d8763063f5d2e2e2d0e1e45bb2f15895361d", "shasum": "" }, "require": { - "composer/semver": "^3.3", - "composer/xdebug-handler": "^3.0.3", - "doctrine/annotations": "^2", - "doctrine/lexer": "^2 || ^3", + "clue/ndjson-react": "^1.3", + "composer/semver": "^3.4", + "composer/xdebug-handler": "^3.0.5", + "ergebnis/agent-detector": "^1.2", + "ext-filter": "*", + "ext-hash": "*", "ext-json": "*", "ext-tokenizer": "*", + "fidry/cpu-core-counter": "^1.3", "php": "^7.4 || ^8.0", - "sebastian/diff": "^4.0 || ^5.0", - "symfony/console": "^5.4 || ^6.0", - "symfony/event-dispatcher": "^5.4 || ^6.0", - "symfony/filesystem": "^5.4 || ^6.0", - "symfony/finder": "^5.4 || ^6.0", - "symfony/options-resolver": "^5.4 || ^6.0", - "symfony/polyfill-mbstring": "^1.27", - "symfony/polyfill-php80": "^1.27", - "symfony/polyfill-php81": "^1.27", - "symfony/process": "^5.4 || ^6.0", - "symfony/stopwatch": "^5.4 || ^6.0" + "react/child-process": "^0.6.6", + "react/event-loop": "^1.5", + "react/socket": "^1.16", + "react/stream": "^1.4", + "sebastian/diff": "^4.0.6 || ^5.1.1 || ^6.0.2 || ^7.0 || ^8.0 || ^9.0", + "symfony/console": "^5.4.47 || ^6.4.24 || ^7.0 || ^8.0", + "symfony/event-dispatcher": "^5.4.45 || ^6.4.24 || ^7.0 || ^8.0", + "symfony/filesystem": "^5.4.45 || ^6.4.24 || ^7.0 || ^8.0", + "symfony/finder": "^5.4.45 || ^6.4.24 || ^7.0 || ^8.0", + "symfony/options-resolver": "^5.4.45 || ^6.4.24 || ^7.0 || ^8.0", + "symfony/polyfill-mbstring": "^1.37", + "symfony/polyfill-php80": "^1.37", + "symfony/polyfill-php81": "^1.37", + "symfony/polyfill-php84": "^1.37", + "symfony/process": "^5.4.47 || ^6.4.24 || ^7.2 || ^8.0", + "symfony/stopwatch": "^5.4.45 || ^6.4.24 || ^7.0 || ^8.0" }, "require-dev": { - "facile-it/paraunit": "^1.3 || ^2.0", - "justinrainbow/json-schema": "^5.2", - "keradus/cli-executor": "^2.0", - "mikey179/vfsstream": "^1.6.11", - "php-coveralls/php-coveralls": "^2.5.3", - "php-cs-fixer/accessible-object": "^1.1", - "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.2", - "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.2.1", - "phpspec/prophecy": "^1.16", - "phpspec/prophecy-phpunit": "^2.0", - "phpunit/phpunit": "^9.5", - "phpunitgoodpractices/polyfill": "^1.6", - "phpunitgoodpractices/traits": "^1.9.2", - "symfony/phpunit-bridge": "^6.2.3", - "symfony/yaml": "^5.4 || ^6.0" + "facile-it/paraunit": "^1.3.1 || ^2.11.0", + "infection/infection": "^0.32.7", + "justinrainbow/json-schema": "^6.8.0", + "keradus/cli-executor": "^2.3", + "mikey179/vfsstream": "^1.6.12", + "php-coveralls/php-coveralls": "^2.9.1", + "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.8", + "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.8", + "phpunit/phpunit": "^9.6.34 || ^10.5.63 || ^11.5.55", + "symfony/polyfill-php85": "^1.37", + "symfony/var-dumper": "^5.4.48 || ^6.4.32 || ^7.4.4 || ^8.0.8", + "symfony/yaml": "^5.4.45 || ^6.4.30 || ^7.4.1 || ^8.0.11" }, "suggest": { "ext-dom": "For handling output formats in XML", @@ -3954,7 +4092,10 @@ "autoload": { "psr-4": { "PhpCsFixer\\": "src/" - } + }, + "exclude-from-classmap": [ + "src/**/Internal/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3979,7 +4120,7 @@ ], "support": { "issues": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues", - "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.23.0" + "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.95.5" }, "funding": [ { @@ -3987,42 +4128,42 @@ "type": "github" } ], - "time": "2023-08-14T12:27:35+00:00" + "time": "2026-06-09T14:55:16+00:00" }, { "name": "imatic/form-bundle", - "version": "v5.2.1", + "version": "dev-symfony-8.1", "source": { "type": "git", "url": "https://github.com/imatic/form-bundle.git", - "reference": "37b1f1b8c4e5408c91a5d53ed3c0f2df73cb71db" + "reference": "eafdc7c2020bbbf9b2c4650adff63ca9ff3d506b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/imatic/form-bundle/zipball/37b1f1b8c4e5408c91a5d53ed3c0f2df73cb71db", - "reference": "37b1f1b8c4e5408c91a5d53ed3c0f2df73cb71db", + "url": "https://api.github.com/repos/imatic/form-bundle/zipball/eafdc7c2020bbbf9b2c4650adff63ca9ff3d506b", + "reference": "eafdc7c2020bbbf9b2c4650adff63ca9ff3d506b", "shasum": "" }, "require": { - "doctrine/doctrine-bundle": "^2.0", - "doctrine/orm": "^2.3", - "php": "^7.2 || ^8.0", - "symfony/expression-language": "^4.4 || ^5.0 || ^6.2", - "symfony/form": "^4.4 || ^5.0 || ^6.2", - "symfony/framework-bundle": "^4.4 || ^5.0 || ^6.2", - "symfony/translation": "^4.4 || ^5.0 || ^6.2", - "symfony/twig-bundle": "^4.4 || ^5.0 || ^6.2", - "symfony/validator": "^4.4 || ^5.0 || ^6.2", - "twig/twig": "^2.12 || ^3.0" + "doctrine/doctrine-bundle": "^3.2", + "doctrine/orm": "^3.0", + "php": "^8.5", + "symfony/expression-language": "^8.1", + "symfony/form": "^8.1", + "symfony/framework-bundle": "^8.1", + "symfony/translation": "^8.1", + "symfony/twig-bundle": "^8.1", + "symfony/validator": "^8.1", + "twig/twig": "^3.0" }, "require-dev": { - "friendsofphp/php-cs-fixer": "^3.4", - "imatic/testing": "^6.0.0", - "symfony/browser-kit": "^4.4 || ^5.0 || ^6.2", - "symfony/phpunit-bridge": "^4.4 || ^5.0 || ^6.2", - "symfony/security-bundle": "^4.4 || ^5.0 || ^6.2", - "symfony/web-profiler-bundle": "^4.4 || ^5.0 || ^6.2", - "symfony/yaml": "^4.4 || ^5.0 || ^6.2" + "friendsofphp/php-cs-fixer": "^3.75", + "imatic/testing": "dev-symfony-8.1", + "symfony/browser-kit": "^8.1", + "symfony/phpunit-bridge": "^8.1", + "symfony/security-bundle": "^8.1", + "symfony/web-profiler-bundle": "^8.1", + "symfony/yaml": "^8.1" }, "type": "symfony-bundle", "autoload": { @@ -4050,33 +4191,33 @@ "description": "Bundle for working with Symfony forms", "support": { "issues": "https://github.com/imatic/form-bundle/issues", - "source": "https://github.com/imatic/form-bundle/tree/v5.2.1" + "source": "https://github.com/imatic/form-bundle/tree/symfony-8.1" }, - "time": "2023-04-03T07:08:45+00:00" + "time": "2026-06-10T11:10:15+00:00" }, { "name": "imatic/testing", - "version": "v6.0.4", + "version": "dev-symfony-8.1", "source": { "type": "git", "url": "https://github.com/imatic/testing.git", - "reference": "481ceb199b2cf6d8eb7be18068ef197987c962c1" + "reference": "e3619f3e291ec8e5e82a18e2d2f1f262e2bfc9ae" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/imatic/testing/zipball/481ceb199b2cf6d8eb7be18068ef197987c962c1", - "reference": "481ceb199b2cf6d8eb7be18068ef197987c962c1", + "url": "https://api.github.com/repos/imatic/testing/zipball/e3619f3e291ec8e5e82a18e2d2f1f262e2bfc9ae", + "reference": "e3619f3e291ec8e5e82a18e2d2f1f262e2bfc9ae", "shasum": "" }, "require": { - "doctrine/doctrine-bundle": "^2.0", - "php": "^7.4 || ^8.0", - "phpunit/phpunit": "^9.5.0", - "symfony/framework-bundle": "^4.4 || ^5.4 || ^6.2", - "symfony/monolog-bundle": "^3.0" + "doctrine/doctrine-bundle": "^3.2", + "php": "^8.5", + "phpunit/phpunit": "^11.0", + "symfony/framework-bundle": "^8.1", + "symfony/monolog-bundle": "^4.0.2" }, "require-dev": { - "friendsofphp/php-cs-fixer": "^3.13", + "friendsofphp/php-cs-fixer": "^3.75", "pds/skeleton": "^1.0" }, "suggest": { @@ -4109,96 +4250,30 @@ ], "support": { "issues": "https://github.com/imatic/testing/issues", - "source": "https://github.com/imatic/testing/tree/v6.0.4" - }, - "time": "2023-03-27T14:01:35+00:00" - }, - { - "name": "masterminds/html5", - "version": "2.8.1", - "source": { - "type": "git", - "url": "https://github.com/Masterminds/html5-php.git", - "reference": "f47dcf3c70c584de14f21143c55d9939631bc6cf" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/f47dcf3c70c584de14f21143c55d9939631bc6cf", - "reference": "f47dcf3c70c584de14f21143c55d9939631bc6cf", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "php": ">=5.3.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7.21 || ^6 || ^7 || ^8" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.7-dev" - } - }, - "autoload": { - "psr-4": { - "Masterminds\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Matt Butcher", - "email": "technosophos@gmail.com" - }, - { - "name": "Matt Farina", - "email": "matt@mattfarina.com" - }, - { - "name": "Asmir Mustafic", - "email": "goetas@gmail.com" - } - ], - "description": "An HTML5 parser and serializer.", - "homepage": "http://masterminds.github.io/html5-php", - "keywords": [ - "HTML5", - "dom", - "html", - "parser", - "querypath", - "serializer", - "xml" - ], - "support": { - "issues": "https://github.com/Masterminds/html5-php/issues", - "source": "https://github.com/Masterminds/html5-php/tree/2.8.1" + "source": "https://github.com/imatic/testing/tree/symfony-8.1" }, - "time": "2023-05-10T11:58:31+00:00" + "time": "2026-06-10T10:56:24+00:00" }, { "name": "mikey179/vfsstream", - "version": "v1.6.11", + "version": "v1.6.12", "source": { "type": "git", "url": "https://github.com/bovigo/vfsStream.git", - "reference": "17d16a85e6c26ce1f3e2fa9ceeacdc2855db1e9f" + "reference": "fe695ec993e0a55c3abdda10a9364eb31c6f1bf0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bovigo/vfsStream/zipball/17d16a85e6c26ce1f3e2fa9ceeacdc2855db1e9f", - "reference": "17d16a85e6c26ce1f3e2fa9ceeacdc2855db1e9f", + "url": "https://api.github.com/repos/bovigo/vfsStream/zipball/fe695ec993e0a55c3abdda10a9364eb31c6f1bf0", + "reference": "fe695ec993e0a55c3abdda10a9364eb31c6f1bf0", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": ">=7.1.0" }, "require-dev": { - "phpunit/phpunit": "^4.5|^5.0" + "phpunit/phpunit": "^7.5||^8.5||^9.6", + "yoast/phpunit-polyfills": "^2.0" }, "type": "library", "extra": { @@ -4229,20 +4304,20 @@ "source": "https://github.com/bovigo/vfsStream/tree/master", "wiki": "https://github.com/bovigo/vfsStream/wiki" }, - "time": "2022-02-23T02:02:42+00:00" + "time": "2024-08-29T18:43:31+00:00" }, { "name": "monolog/monolog", - "version": "3.4.0", + "version": "3.10.0", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "e2392369686d420ca32df3803de28b5d6f76867d" + "reference": "b321dd6749f0bf7189444158a3ce785cc16d69b0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/e2392369686d420ca32df3803de28b5d6f76867d", - "reference": "e2392369686d420ca32df3803de28b5d6f76867d", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/b321dd6749f0bf7189444158a3ce785cc16d69b0", + "reference": "b321dd6749f0bf7189444158a3ce785cc16d69b0", "shasum": "" }, "require": { @@ -4260,14 +4335,16 @@ "graylog2/gelf-php": "^1.4.2 || ^2.0", "guzzlehttp/guzzle": "^7.4.5", "guzzlehttp/psr7": "^2.2", - "mongodb/mongodb": "^1.8", + "mongodb/mongodb": "^1.8 || ^2.0", "php-amqplib/php-amqplib": "~2.4 || ^3", - "phpstan/phpstan": "^1.9", - "phpstan/phpstan-deprecation-rules": "^1.0", - "phpstan/phpstan-strict-rules": "^1.4", - "phpunit/phpunit": "^10.1", + "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", - "ruflin/elastica": "^7", + "rollbar/rollbar": "^4.0", + "ruflin/elastica": "^7 || ^8", "symfony/mailer": "^5.4 || ^6", "symfony/mime": "^5.4 || ^6" }, @@ -4318,7 +4395,7 @@ ], "support": { "issues": "https://github.com/Seldaek/monolog/issues", - "source": "https://github.com/Seldaek/monolog/tree/3.4.0" + "source": "https://github.com/Seldaek/monolog/tree/3.10.0" }, "funding": [ { @@ -4330,20 +4407,20 @@ "type": "tidelift" } ], - "time": "2023-06-21T08:46:11+00:00" + "time": "2026-01-02T08:56:05+00:00" }, { "name": "myclabs/deep-copy", - "version": "1.11.1", + "version": "1.13.4", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c" + "reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", - "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/07d290f0c47959fd5eed98c95ee5602db07e0b6a", + "reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a", "shasum": "" }, "require": { @@ -4351,11 +4428,12 @@ }, "conflict": { "doctrine/collections": "<1.6.8", - "doctrine/common": "<2.13.3 || >=3,<3.2.2" + "doctrine/common": "<2.13.3 || >=3 <3.2.2" }, "require-dev": { "doctrine/collections": "^1.6.8", "doctrine/common": "^2.13.3 || ^3.2.2", + "phpspec/prophecy": "^1.10", "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" }, "type": "library", @@ -4381,7 +4459,7 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1" + "source": "https://github.com/myclabs/DeepCopy/tree/1.13.4" }, "funding": [ { @@ -4389,29 +4467,31 @@ "type": "tidelift" } ], - "time": "2023-03-08T13:26:56+00:00" + "time": "2025-08-01T08:46:24+00:00" }, { "name": "nikic/php-parser", - "version": "v4.17.1", + "version": "v5.7.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d" + "reference": "dca41cd15c2ac9d055ad70dbfd011130757d1f82" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d", - "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/dca41cd15c2ac9d055ad70dbfd011130757d1f82", + "reference": "dca41cd15c2ac9d055ad70dbfd011130757d1f82", "shasum": "" }, "require": { + "ext-ctype": "*", + "ext-json": "*", "ext-tokenizer": "*", - "php": ">=7.0" + "php": ">=7.4" }, "require-dev": { "ircmaxell/php-yacc": "^0.0.7", - "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" + "phpunit/phpunit": "^9.0" }, "bin": [ "bin/php-parse" @@ -4419,7 +4499,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.9-dev" + "dev-master": "5.x-dev" } }, "autoload": { @@ -4443,26 +4523,27 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.17.1" + "source": "https://github.com/nikic/PHP-Parser/tree/v5.7.0" }, - "time": "2023-08-13T19:53:39+00:00" + "time": "2025-12-06T11:56:16+00:00" }, { "name": "phar-io/manifest", - "version": "2.0.3", + "version": "2.0.4", "source": { "type": "git", "url": "https://github.com/phar-io/manifest.git", - "reference": "97803eca37d319dfa7826cc2437fc020857acb53" + "reference": "54750ef60c58e43759730615a392c31c80e23176" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", - "reference": "97803eca37d319dfa7826cc2437fc020857acb53", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176", + "reference": "54750ef60c58e43759730615a392c31c80e23176", "shasum": "" }, "require": { "ext-dom": "*", + "ext-libxml": "*", "ext-phar": "*", "ext-xmlwriter": "*", "phar-io/version": "^3.0.1", @@ -4503,9 +4584,15 @@ "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", "support": { "issues": "https://github.com/phar-io/manifest/issues", - "source": "https://github.com/phar-io/manifest/tree/2.0.3" + "source": "https://github.com/phar-io/manifest/tree/2.0.4" }, - "time": "2021-07-20T11:28:43+00:00" + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2024-03-03T12:33:53+00:00" }, { "name": "phar-io/version", @@ -4560,20 +4647,15 @@ }, { "name": "phpstan/phpstan", - "version": "1.10.32", - "source": { - "type": "git", - "url": "https://github.com/phpstan/phpstan.git", - "reference": "c47e47d3ab03137c0e121e77c4d2cb58672f6d44" - }, + "version": "2.2.2", "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/c47e47d3ab03137c0e121e77c4d2cb58672f6d44", - "reference": "c47e47d3ab03137c0e121e77c4d2cb58672f6d44", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/e5cc34d491a90e79c216d824f60fe21fd4d93bd6", + "reference": "e5cc34d491a90e79c216d824f60fe21fd4d93bd6", "shasum": "" }, "require": { - "php": "^7.2|^8.0" + "php": "^7.4|^8.0" }, "conflict": { "phpstan/phpstan-shim": "*" @@ -4592,6 +4674,17 @@ "license": [ "MIT" ], + "authors": [ + { + "name": "Ondřej Mirtes" + }, + { + "name": "Markus Staab" + }, + { + "name": "Vincent Langlet" + } + ], "description": "PHPStan - PHP Static Analysis Tool", "keywords": [ "dev", @@ -4612,45 +4705,41 @@ { "url": "https://github.com/phpstan", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/phpstan/phpstan", - "type": "tidelift" } ], - "time": "2023-08-24T21:54:50+00:00" + "time": "2026-06-05T09:00:01+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "9.2.27", + "version": "11.0.12", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "b0a88255cb70d52653d80c890bd7f38740ea50d1" + "reference": "2c1ed04922802c15e1de5d7447b4856de949cf56" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/b0a88255cb70d52653d80c890bd7f38740ea50d1", - "reference": "b0a88255cb70d52653d80c890bd7f38740ea50d1", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/2c1ed04922802c15e1de5d7447b4856de949cf56", + "reference": "2c1ed04922802c15e1de5d7447b4856de949cf56", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "ext-xmlwriter": "*", - "nikic/php-parser": "^4.15", - "php": ">=7.3", - "phpunit/php-file-iterator": "^3.0.3", - "phpunit/php-text-template": "^2.0.2", - "sebastian/code-unit-reverse-lookup": "^2.0.2", - "sebastian/complexity": "^2.0", - "sebastian/environment": "^5.1.2", - "sebastian/lines-of-code": "^1.0.3", - "sebastian/version": "^3.0.1", - "theseer/tokenizer": "^1.2.0" + "nikic/php-parser": "^5.7.0", + "php": ">=8.2", + "phpunit/php-file-iterator": "^5.1.0", + "phpunit/php-text-template": "^4.0.1", + "sebastian/code-unit-reverse-lookup": "^4.0.1", + "sebastian/complexity": "^4.0.1", + "sebastian/environment": "^7.2.1", + "sebastian/lines-of-code": "^3.0.1", + "sebastian/version": "^5.0.2", + "theseer/tokenizer": "^1.3.1" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^11.5.46" }, "suggest": { "ext-pcov": "PHP extension that provides line coverage", @@ -4659,7 +4748,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "9.2-dev" + "dev-main": "11.0.x-dev" } }, "autoload": { @@ -4688,40 +4777,52 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.27" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/11.0.12" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" - } - ], - "time": "2023-07-26T13:44:30+00:00" - }, - { - "name": "phpunit/php-file-iterator", - "version": "3.0.6", - "source": { + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpunit/php-code-coverage", + "type": "tidelift" + } + ], + "time": "2025-12-24T07:01:01+00:00" + }, + { + "name": "phpunit/php-file-iterator", + "version": "5.1.1", + "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf" + "reference": "2f3a64888c814fc235386b7387dd5b5ed92ad903" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", - "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/2f3a64888c814fc235386b7387dd5b5ed92ad903", + "reference": "2f3a64888c814fc235386b7387dd5b5ed92ad903", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^11.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-main": "5.1-dev" } }, "autoload": { @@ -4748,36 +4849,49 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", - "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6" + "security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy", + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/5.1.1" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpunit/php-file-iterator", + "type": "tidelift" } ], - "time": "2021-12-02T12:48:52+00:00" + "time": "2026-02-02T13:52:54+00:00" }, { "name": "phpunit/php-invoker", - "version": "3.1.1", + "version": "5.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-invoker.git", - "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67" + "reference": "c1ca3814734c07492b3d4c5f794f4b0995333da2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67", - "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67", + "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/c1ca3814734c07492b3d4c5f794f4b0995333da2", + "reference": "c1ca3814734c07492b3d4c5f794f4b0995333da2", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.2" }, "require-dev": { "ext-pcntl": "*", - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^11.0" }, "suggest": { "ext-pcntl": "*" @@ -4785,7 +4899,127 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1-dev" + "dev-main": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Invoke callables with a timeout", + "homepage": "https://github.com/sebastianbergmann/php-invoker/", + "keywords": [ + "process" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-invoker/issues", + "security": "https://github.com/sebastianbergmann/php-invoker/security/policy", + "source": "https://github.com/sebastianbergmann/php-invoker/tree/5.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-07-03T05:07:44+00:00" + }, + { + "name": "phpunit/php-text-template", + "version": "4.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "3e0404dc6b300e6bf56415467ebcb3fe4f33e964" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/3e0404dc6b300e6bf56415467ebcb3fe4f33e964", + "reference": "3e0404dc6b300e6bf56415467ebcb3fe4f33e964", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "require-dev": { + "phpunit/phpunit": "^11.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "keywords": [ + "template" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-text-template/issues", + "security": "https://github.com/sebastianbergmann/php-text-template/security/policy", + "source": "https://github.com/sebastianbergmann/php-text-template/tree/4.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-07-03T05:08:43+00:00" + }, + { + "name": "phpunit/php-timer", + "version": "7.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "3b415def83fbcb41f991d9ebf16ae4ad8b7837b3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3b415def83fbcb41f991d9ebf16ae4ad8b7837b3", + "reference": "3b415def83fbcb41f991d9ebf16ae4ad8b7837b3", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "require-dev": { + "phpunit/phpunit": "^11.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "7.0-dev" } }, "autoload": { @@ -4804,265 +5038,657 @@ "role": "lead" } ], - "description": "Invoke callables with a timeout", - "homepage": "https://github.com/sebastianbergmann/php-invoker/", + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", + "keywords": [ + "timer" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-timer/issues", + "security": "https://github.com/sebastianbergmann/php-timer/security/policy", + "source": "https://github.com/sebastianbergmann/php-timer/tree/7.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-07-03T05:09:35+00:00" + }, + { + "name": "phpunit/phpunit", + "version": "11.5.55", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "adc7262fccc12de2b30f12a8aa0b33775d814f00" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/adc7262fccc12de2b30f12a8aa0b33775d814f00", + "reference": "adc7262fccc12de2b30f12a8aa0b33775d814f00", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xml": "*", + "ext-xmlwriter": "*", + "myclabs/deep-copy": "^1.13.4", + "phar-io/manifest": "^2.0.4", + "phar-io/version": "^3.2.1", + "php": ">=8.2", + "phpunit/php-code-coverage": "^11.0.12", + "phpunit/php-file-iterator": "^5.1.1", + "phpunit/php-invoker": "^5.0.1", + "phpunit/php-text-template": "^4.0.1", + "phpunit/php-timer": "^7.0.1", + "sebastian/cli-parser": "^3.0.2", + "sebastian/code-unit": "^3.0.3", + "sebastian/comparator": "^6.3.3", + "sebastian/diff": "^6.0.2", + "sebastian/environment": "^7.2.1", + "sebastian/exporter": "^6.3.2", + "sebastian/global-state": "^7.0.2", + "sebastian/object-enumerator": "^6.0.1", + "sebastian/recursion-context": "^6.0.3", + "sebastian/type": "^5.1.3", + "sebastian/version": "^5.0.2", + "staabm/side-effects-detector": "^1.0.5" + }, + "suggest": { + "ext-soap": "To be able to generate mocks based on WSDL files" + }, + "bin": [ + "phpunit" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "11.5-dev" + } + }, + "autoload": { + "files": [ + "src/Framework/Assert/Functions.php" + ], + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", + "keywords": [ + "phpunit", + "testing", + "xunit" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/phpunit/issues", + "security": "https://github.com/sebastianbergmann/phpunit/security/policy", + "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.55" + }, + "funding": [ + { + "url": "https://phpunit.de/sponsors.html", + "type": "custom" + }, + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", + "type": "tidelift" + } + ], + "time": "2026-02-18T12:37:06+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": "react/cache", + "version": "v1.2.0", + "source": { + "type": "git", + "url": "https://github.com/reactphp/cache.git", + "reference": "d47c472b64aa5608225f47965a484b75c7817d5b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/reactphp/cache/zipball/d47c472b64aa5608225f47965a484b75c7817d5b", + "reference": "d47c472b64aa5608225f47965a484b75c7817d5b", + "shasum": "" + }, + "require": { + "php": ">=5.3.0", + "react/promise": "^3.0 || ^2.0 || ^1.1" + }, + "require-dev": { + "phpunit/phpunit": "^9.5 || ^5.7 || ^4.8.35" + }, + "type": "library", + "autoload": { + "psr-4": { + "React\\Cache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christian Lück", + "email": "christian@clue.engineering", + "homepage": "https://clue.engineering/" + }, + { + "name": "Cees-Jan Kiewiet", + "email": "reactphp@ceesjankiewiet.nl", + "homepage": "https://wyrihaximus.net/" + }, + { + "name": "Jan Sorgalla", + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" + } + ], + "description": "Async, Promise-based cache interface for ReactPHP", + "keywords": [ + "cache", + "caching", + "promise", + "reactphp" + ], + "support": { + "issues": "https://github.com/reactphp/cache/issues", + "source": "https://github.com/reactphp/cache/tree/v1.2.0" + }, + "funding": [ + { + "url": "https://opencollective.com/reactphp", + "type": "open_collective" + } + ], + "time": "2022-11-30T15:59:55+00:00" + }, + { + "name": "react/child-process", + "version": "v0.6.7", + "source": { + "type": "git", + "url": "https://github.com/reactphp/child-process.git", + "reference": "970f0e71945556422ee4570ccbabaedc3cf04ad3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/reactphp/child-process/zipball/970f0e71945556422ee4570ccbabaedc3cf04ad3", + "reference": "970f0e71945556422ee4570ccbabaedc3cf04ad3", + "shasum": "" + }, + "require": { + "evenement/evenement": "^3.0 || ^2.0 || ^1.0", + "php": ">=5.3.0", + "react/event-loop": "^1.2", + "react/stream": "^1.4" + }, + "require-dev": { + "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36", + "react/socket": "^1.16", + "sebastian/environment": "^5.0 || ^3.0 || ^2.0 || ^1.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "React\\ChildProcess\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christian Lück", + "email": "christian@clue.engineering", + "homepage": "https://clue.engineering/" + }, + { + "name": "Cees-Jan Kiewiet", + "email": "reactphp@ceesjankiewiet.nl", + "homepage": "https://wyrihaximus.net/" + }, + { + "name": "Jan Sorgalla", + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" + } + ], + "description": "Event-driven library for executing child processes with ReactPHP.", + "keywords": [ + "event-driven", + "process", + "reactphp" + ], + "support": { + "issues": "https://github.com/reactphp/child-process/issues", + "source": "https://github.com/reactphp/child-process/tree/v0.6.7" + }, + "funding": [ + { + "url": "https://opencollective.com/reactphp", + "type": "open_collective" + } + ], + "time": "2025-12-23T15:25:20+00:00" + }, + { + "name": "react/dns", + "version": "v1.14.0", + "source": { + "type": "git", + "url": "https://github.com/reactphp/dns.git", + "reference": "7562c05391f42701c1fccf189c8225fece1cd7c3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/reactphp/dns/zipball/7562c05391f42701c1fccf189c8225fece1cd7c3", + "reference": "7562c05391f42701c1fccf189c8225fece1cd7c3", + "shasum": "" + }, + "require": { + "php": ">=5.3.0", + "react/cache": "^1.0 || ^0.6 || ^0.5", + "react/event-loop": "^1.2", + "react/promise": "^3.2 || ^2.7 || ^1.2.1" + }, + "require-dev": { + "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36", + "react/async": "^4.3 || ^3 || ^2", + "react/promise-timer": "^1.11" + }, + "type": "library", + "autoload": { + "psr-4": { + "React\\Dns\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christian Lück", + "email": "christian@clue.engineering", + "homepage": "https://clue.engineering/" + }, + { + "name": "Cees-Jan Kiewiet", + "email": "reactphp@ceesjankiewiet.nl", + "homepage": "https://wyrihaximus.net/" + }, + { + "name": "Jan Sorgalla", + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" + } + ], + "description": "Async DNS resolver for ReactPHP", "keywords": [ - "process" + "async", + "dns", + "dns-resolver", + "reactphp" ], "support": { - "issues": "https://github.com/sebastianbergmann/php-invoker/issues", - "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1" + "issues": "https://github.com/reactphp/dns/issues", + "source": "https://github.com/reactphp/dns/tree/v1.14.0" }, "funding": [ { - "url": "https://github.com/sebastianbergmann", - "type": "github" + "url": "https://opencollective.com/reactphp", + "type": "open_collective" } ], - "time": "2020-09-28T05:58:55+00:00" + "time": "2025-11-18T19:34:28+00:00" }, { - "name": "phpunit/php-text-template", - "version": "2.0.4", + "name": "react/event-loop", + "version": "v1.6.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28" + "url": "https://github.com/reactphp/event-loop.git", + "reference": "ba276bda6083df7e0050fd9b33f66ad7a4ac747a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", - "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", + "url": "https://api.github.com/repos/reactphp/event-loop/zipball/ba276bda6083df7e0050fd9b33f66ad7a4ac747a", + "reference": "ba276bda6083df7e0050fd9b33f66ad7a4ac747a", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=5.3.0" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } + "suggest": { + "ext-pcntl": "For signal handling support when using the StreamSelectLoop" }, + "type": "library", "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "React\\EventLoop\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "name": "Christian Lück", + "email": "christian@clue.engineering", + "homepage": "https://clue.engineering/" + }, + { + "name": "Cees-Jan Kiewiet", + "email": "reactphp@ceesjankiewiet.nl", + "homepage": "https://wyrihaximus.net/" + }, + { + "name": "Jan Sorgalla", + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" } ], - "description": "Simple template engine.", - "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "description": "ReactPHP's core reactor event loop that libraries can use for evented I/O.", "keywords": [ - "template" + "asynchronous", + "event-loop" ], "support": { - "issues": "https://github.com/sebastianbergmann/php-text-template/issues", - "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4" + "issues": "https://github.com/reactphp/event-loop/issues", + "source": "https://github.com/reactphp/event-loop/tree/v1.6.0" }, "funding": [ { - "url": "https://github.com/sebastianbergmann", - "type": "github" + "url": "https://opencollective.com/reactphp", + "type": "open_collective" } ], - "time": "2020-10-26T05:33:50+00:00" + "time": "2025-11-17T20:46:25+00:00" }, { - "name": "phpunit/php-timer", - "version": "5.0.3", + "name": "react/promise", + "version": "v3.3.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2" + "url": "https://github.com/reactphp/promise.git", + "reference": "23444f53a813a3296c1368bb104793ce8d88f04a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", - "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", + "url": "https://api.github.com/repos/reactphp/promise/zipball/23444f53a813a3296c1368bb104793ce8d88f04a", + "reference": "23444f53a813a3296c1368bb104793ce8d88f04a", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=7.1.0" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpstan/phpstan": "1.12.28 || 1.4.10", + "phpunit/phpunit": "^9.6 || ^7.5" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.0-dev" - } - }, "autoload": { - "classmap": [ - "src/" - ] + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "React\\Promise\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "name": "Jan Sorgalla", + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Christian Lück", + "email": "christian@clue.engineering", + "homepage": "https://clue.engineering/" + }, + { + "name": "Cees-Jan Kiewiet", + "email": "reactphp@ceesjankiewiet.nl", + "homepage": "https://wyrihaximus.net/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" } ], - "description": "Utility class for timing", - "homepage": "https://github.com/sebastianbergmann/php-timer/", + "description": "A lightweight implementation of CommonJS Promises/A for PHP", "keywords": [ - "timer" + "promise", + "promises" ], "support": { - "issues": "https://github.com/sebastianbergmann/php-timer/issues", - "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3" + "issues": "https://github.com/reactphp/promise/issues", + "source": "https://github.com/reactphp/promise/tree/v3.3.0" }, "funding": [ { - "url": "https://github.com/sebastianbergmann", - "type": "github" + "url": "https://opencollective.com/reactphp", + "type": "open_collective" } ], - "time": "2020-10-26T13:16:10+00:00" + "time": "2025-08-19T18:57:03+00:00" }, { - "name": "phpunit/phpunit", - "version": "9.6.11", + "name": "react/socket", + "version": "v1.17.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "810500e92855eba8a7a5319ae913be2da6f957b0" + "url": "https://github.com/reactphp/socket.git", + "reference": "ef5b17b81f6f60504c539313f94f2d826c5faa08" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/810500e92855eba8a7a5319ae913be2da6f957b0", - "reference": "810500e92855eba8a7a5319ae913be2da6f957b0", + "url": "https://api.github.com/repos/reactphp/socket/zipball/ef5b17b81f6f60504c539313f94f2d826c5faa08", + "reference": "ef5b17b81f6f60504c539313f94f2d826c5faa08", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.3.1 || ^2", - "ext-dom": "*", - "ext-json": "*", - "ext-libxml": "*", - "ext-mbstring": "*", - "ext-xml": "*", - "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.10.1", - "phar-io/manifest": "^2.0.3", - "phar-io/version": "^3.0.2", - "php": ">=7.3", - "phpunit/php-code-coverage": "^9.2.13", - "phpunit/php-file-iterator": "^3.0.5", - "phpunit/php-invoker": "^3.1.1", - "phpunit/php-text-template": "^2.0.3", - "phpunit/php-timer": "^5.0.2", - "sebastian/cli-parser": "^1.0.1", - "sebastian/code-unit": "^1.0.6", - "sebastian/comparator": "^4.0.8", - "sebastian/diff": "^4.0.3", - "sebastian/environment": "^5.1.3", - "sebastian/exporter": "^4.0.5", - "sebastian/global-state": "^5.0.1", - "sebastian/object-enumerator": "^4.0.3", - "sebastian/resource-operations": "^3.0.3", - "sebastian/type": "^3.2", - "sebastian/version": "^3.0.2" + "evenement/evenement": "^3.0 || ^2.0 || ^1.0", + "php": ">=5.3.0", + "react/dns": "^1.13", + "react/event-loop": "^1.2", + "react/promise": "^3.2 || ^2.6 || ^1.2.1", + "react/stream": "^1.4" }, - "suggest": { - "ext-soap": "To be able to generate mocks based on WSDL files", - "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" + "require-dev": { + "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36", + "react/async": "^4.3 || ^3.3 || ^2", + "react/promise-stream": "^1.4", + "react/promise-timer": "^1.11" }, - "bin": [ - "phpunit" - ], "type": "library", - "extra": { - "branch-alias": { - "dev-master": "9.6-dev" - } - }, "autoload": { - "files": [ - "src/Framework/Assert/Functions.php" - ], - "classmap": [ - "src/" - ] + "psr-4": { + "React\\Socket\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "name": "Christian Lück", + "email": "christian@clue.engineering", + "homepage": "https://clue.engineering/" + }, + { + "name": "Cees-Jan Kiewiet", + "email": "reactphp@ceesjankiewiet.nl", + "homepage": "https://wyrihaximus.net/" + }, + { + "name": "Jan Sorgalla", + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" } ], - "description": "The PHP Unit Testing framework.", - "homepage": "https://phpunit.de/", + "description": "Async, streaming plaintext TCP/IP and secure TLS socket server and client connections for ReactPHP", "keywords": [ - "phpunit", - "testing", - "xunit" + "Connection", + "Socket", + "async", + "reactphp", + "stream" ], "support": { - "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.11" + "issues": "https://github.com/reactphp/socket/issues", + "source": "https://github.com/reactphp/socket/tree/v1.17.0" }, "funding": [ { - "url": "https://phpunit.de/sponsors.html", - "type": "custom" - }, - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", - "type": "tidelift" + "url": "https://opencollective.com/reactphp", + "type": "open_collective" } ], - "time": "2023-08-19T07:10:56+00:00" + "time": "2025-11-19T20:47:34+00:00" }, { - "name": "psr/clock", - "version": "1.0.0", + "name": "react/stream", + "version": "v1.4.0", "source": { "type": "git", - "url": "https://github.com/php-fig/clock.git", - "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d" + "url": "https://github.com/reactphp/stream.git", + "reference": "1e5b0acb8fe55143b5b426817155190eb6f5b18d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/clock/zipball/e41a24703d4560fd0acb709162f73b8adfc3aa0d", - "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d", + "url": "https://api.github.com/repos/reactphp/stream/zipball/1e5b0acb8fe55143b5b426817155190eb6f5b18d", + "reference": "1e5b0acb8fe55143b5b426817155190eb6f5b18d", "shasum": "" }, "require": { - "php": "^7.0 || ^8.0" + "evenement/evenement": "^3.0 || ^2.0 || ^1.0", + "php": ">=5.3.8", + "react/event-loop": "^1.2" + }, + "require-dev": { + "clue/stream-filter": "~1.2", + "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36" }, "type": "library", "autoload": { "psr-4": { - "Psr\\Clock\\": "src/" + "React\\Stream\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -5071,49 +5697,73 @@ ], "authors": [ { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" + "name": "Christian Lück", + "email": "christian@clue.engineering", + "homepage": "https://clue.engineering/" + }, + { + "name": "Cees-Jan Kiewiet", + "email": "reactphp@ceesjankiewiet.nl", + "homepage": "https://wyrihaximus.net/" + }, + { + "name": "Jan Sorgalla", + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" } ], - "description": "Common interface for reading the clock.", - "homepage": "https://github.com/php-fig/clock", + "description": "Event-driven readable and writable streams for non-blocking I/O in ReactPHP", "keywords": [ - "clock", - "now", - "psr", - "psr-20", - "time" + "event-driven", + "io", + "non-blocking", + "pipe", + "reactphp", + "readable", + "stream", + "writable" ], "support": { - "issues": "https://github.com/php-fig/clock/issues", - "source": "https://github.com/php-fig/clock/tree/1.0.0" + "issues": "https://github.com/reactphp/stream/issues", + "source": "https://github.com/reactphp/stream/tree/v1.4.0" }, - "time": "2022-11-25T14:36:26+00:00" + "funding": [ + { + "url": "https://opencollective.com/reactphp", + "type": "open_collective" + } + ], + "time": "2024-06-11T12:45:25+00:00" }, { "name": "sebastian/cli-parser", - "version": "1.0.1", + "version": "3.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/cli-parser.git", - "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2" + "reference": "15c5dd40dc4f38794d383bb95465193f5e0ae180" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2", - "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/15c5dd40dc4f38794d383bb95465193f5e0ae180", + "reference": "15c5dd40dc4f38794d383bb95465193f5e0ae180", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-main": "3.0-dev" } }, "autoload": { @@ -5136,7 +5786,8 @@ "homepage": "https://github.com/sebastianbergmann/cli-parser", "support": { "issues": "https://github.com/sebastianbergmann/cli-parser/issues", - "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1" + "security": "https://github.com/sebastianbergmann/cli-parser/security/policy", + "source": "https://github.com/sebastianbergmann/cli-parser/tree/3.0.2" }, "funding": [ { @@ -5144,32 +5795,32 @@ "type": "github" } ], - "time": "2020-09-28T06:08:49+00:00" + "time": "2024-07-03T04:41:36+00:00" }, { "name": "sebastian/code-unit", - "version": "1.0.8", + "version": "3.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/code-unit.git", - "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120" + "reference": "54391c61e4af8078e5b276ab082b6d3c54c9ad64" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120", - "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/54391c61e4af8078e5b276ab082b6d3c54c9ad64", + "reference": "54391c61e4af8078e5b276ab082b6d3c54c9ad64", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^11.5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-main": "3.0-dev" } }, "autoload": { @@ -5192,7 +5843,8 @@ "homepage": "https://github.com/sebastianbergmann/code-unit", "support": { "issues": "https://github.com/sebastianbergmann/code-unit/issues", - "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8" + "security": "https://github.com/sebastianbergmann/code-unit/security/policy", + "source": "https://github.com/sebastianbergmann/code-unit/tree/3.0.3" }, "funding": [ { @@ -5200,32 +5852,32 @@ "type": "github" } ], - "time": "2020-10-26T13:08:54+00:00" + "time": "2025-03-19T07:56:08+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", - "version": "2.0.3", + "version": "4.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5" + "reference": "183a9b2632194febd219bb9246eee421dad8d45e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", - "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/183a9b2632194febd219bb9246eee421dad8d45e", + "reference": "183a9b2632194febd219bb9246eee421dad8d45e", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-main": "4.0-dev" } }, "autoload": { @@ -5247,7 +5899,8 @@ "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", "support": { "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", - "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3" + "security": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/security/policy", + "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/4.0.1" }, "funding": [ { @@ -5255,34 +5908,39 @@ "type": "github" } ], - "time": "2020-09-28T05:30:19+00:00" + "time": "2024-07-03T04:45:54+00:00" }, { "name": "sebastian/comparator", - "version": "4.0.8", + "version": "6.3.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "fa0f136dd2334583309d32b62544682ee972b51a" + "reference": "2c95e1e86cb8dd41beb8d502057d1081ccc8eca9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a", - "reference": "fa0f136dd2334583309d32b62544682ee972b51a", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2c95e1e86cb8dd41beb8d502057d1081ccc8eca9", + "reference": "2c95e1e86cb8dd41beb8d502057d1081ccc8eca9", "shasum": "" }, "require": { - "php": ">=7.3", - "sebastian/diff": "^4.0", - "sebastian/exporter": "^4.0" + "ext-dom": "*", + "ext-mbstring": "*", + "php": ">=8.2", + "sebastian/diff": "^6.0", + "sebastian/exporter": "^6.0" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^11.4" + }, + "suggest": { + "ext-bcmath": "For comparing BcMath\\Number objects" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-main": "6.3-dev" } }, "autoload": { @@ -5321,41 +5979,54 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/comparator/issues", - "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8" + "security": "https://github.com/sebastianbergmann/comparator/security/policy", + "source": "https://github.com/sebastianbergmann/comparator/tree/6.3.3" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/comparator", + "type": "tidelift" } ], - "time": "2022-09-14T12:41:17+00:00" + "time": "2026-01-24T09:26:40+00:00" }, { "name": "sebastian/complexity", - "version": "2.0.2", + "version": "4.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/complexity.git", - "reference": "739b35e53379900cc9ac327b2147867b8b6efd88" + "reference": "ee41d384ab1906c68852636b6de493846e13e5a0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88", - "reference": "739b35e53379900cc9ac327b2147867b8b6efd88", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/ee41d384ab1906c68852636b6de493846e13e5a0", + "reference": "ee41d384ab1906c68852636b6de493846e13e5a0", "shasum": "" }, "require": { - "nikic/php-parser": "^4.7", - "php": ">=7.3" + "nikic/php-parser": "^5.0", + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-main": "4.0-dev" } }, "autoload": { @@ -5378,7 +6049,8 @@ "homepage": "https://github.com/sebastianbergmann/complexity", "support": { "issues": "https://github.com/sebastianbergmann/complexity/issues", - "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2" + "security": "https://github.com/sebastianbergmann/complexity/security/policy", + "source": "https://github.com/sebastianbergmann/complexity/tree/4.0.1" }, "funding": [ { @@ -5386,33 +6058,33 @@ "type": "github" } ], - "time": "2020-10-26T15:52:27+00:00" + "time": "2024-07-03T04:49:50+00:00" }, { "name": "sebastian/diff", - "version": "4.0.5", + "version": "6.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131" + "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/74be17022044ebaaecfdf0c5cd504fc9cd5a7131", - "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/b4ccd857127db5d41a5b676f24b51371d76d8544", + "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^9.3", + "phpunit/phpunit": "^11.0", "symfony/process": "^4.2 || ^5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -5444,7 +6116,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/diff/issues", - "source": "https://github.com/sebastianbergmann/diff/tree/4.0.5" + "security": "https://github.com/sebastianbergmann/diff/security/policy", + "source": "https://github.com/sebastianbergmann/diff/tree/6.0.2" }, "funding": [ { @@ -5452,27 +6125,27 @@ "type": "github" } ], - "time": "2023-05-07T05:35:17+00:00" + "time": "2024-07-03T04:53:05+00:00" }, { "name": "sebastian/environment", - "version": "5.1.5", + "version": "7.2.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed" + "reference": "a5c75038693ad2e8d4b6c15ba2403532647830c4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", - "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/a5c75038693ad2e8d4b6c15ba2403532647830c4", + "reference": "a5c75038693ad2e8d4b6c15ba2403532647830c4", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^11.3" }, "suggest": { "ext-posix": "*" @@ -5480,7 +6153,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "5.1-dev" + "dev-main": "7.2-dev" } }, "autoload": { @@ -5499,7 +6172,7 @@ } ], "description": "Provides functionality to handle HHVM/PHP environments", - "homepage": "http://www.github.com/sebastianbergmann/environment", + "homepage": "https://github.com/sebastianbergmann/environment", "keywords": [ "Xdebug", "environment", @@ -5507,42 +6180,55 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/environment/issues", - "source": "https://github.com/sebastianbergmann/environment/tree/5.1.5" + "security": "https://github.com/sebastianbergmann/environment/security/policy", + "source": "https://github.com/sebastianbergmann/environment/tree/7.2.1" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/environment", + "type": "tidelift" } ], - "time": "2023-02-03T06:03:51+00:00" + "time": "2025-05-21T11:55:47+00:00" }, { "name": "sebastian/exporter", - "version": "4.0.5", + "version": "6.3.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d" + "reference": "70a298763b40b213ec087c51c739efcaa90bcd74" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", - "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/70a298763b40b213ec087c51c739efcaa90bcd74", + "reference": "70a298763b40b213ec087c51c739efcaa90bcd74", "shasum": "" }, "require": { - "php": ">=7.3", - "sebastian/recursion-context": "^4.0" + "ext-mbstring": "*", + "php": ">=8.2", + "sebastian/recursion-context": "^6.0" }, "require-dev": { - "ext-mbstring": "*", - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^11.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-main": "6.3-dev" } }, "autoload": { @@ -5584,46 +6270,56 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", - "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.5" + "security": "https://github.com/sebastianbergmann/exporter/security/policy", + "source": "https://github.com/sebastianbergmann/exporter/tree/6.3.2" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/exporter", + "type": "tidelift" } ], - "time": "2022-09-14T06:03:37+00:00" + "time": "2025-09-24T06:12:51+00:00" }, { "name": "sebastian/global-state", - "version": "5.0.6", + "version": "7.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "bde739e7565280bda77be70044ac1047bc007e34" + "reference": "3be331570a721f9a4b5917f4209773de17f747d7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bde739e7565280bda77be70044ac1047bc007e34", - "reference": "bde739e7565280bda77be70044ac1047bc007e34", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/3be331570a721f9a4b5917f4209773de17f747d7", + "reference": "3be331570a721f9a4b5917f4209773de17f747d7", "shasum": "" }, "require": { - "php": ">=7.3", - "sebastian/object-reflector": "^2.0", - "sebastian/recursion-context": "^4.0" + "php": ">=8.2", + "sebastian/object-reflector": "^4.0", + "sebastian/recursion-context": "^6.0" }, "require-dev": { "ext-dom": "*", - "phpunit/phpunit": "^9.3" - }, - "suggest": { - "ext-uopz": "*" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "5.0-dev" + "dev-main": "7.0-dev" } }, "autoload": { @@ -5642,13 +6338,14 @@ } ], "description": "Snapshotting of global state", - "homepage": "http://www.github.com/sebastianbergmann/global-state", + "homepage": "https://www.github.com/sebastianbergmann/global-state", "keywords": [ "global state" ], "support": { "issues": "https://github.com/sebastianbergmann/global-state/issues", - "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.6" + "security": "https://github.com/sebastianbergmann/global-state/security/policy", + "source": "https://github.com/sebastianbergmann/global-state/tree/7.0.2" }, "funding": [ { @@ -5656,33 +6353,33 @@ "type": "github" } ], - "time": "2023-08-02T09:26:13+00:00" + "time": "2024-07-03T04:57:36+00:00" }, { "name": "sebastian/lines-of-code", - "version": "1.0.3", + "version": "3.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/lines-of-code.git", - "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc" + "reference": "d36ad0d782e5756913e42ad87cb2890f4ffe467a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc", - "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/d36ad0d782e5756913e42ad87cb2890f4ffe467a", + "reference": "d36ad0d782e5756913e42ad87cb2890f4ffe467a", "shasum": "" }, "require": { - "nikic/php-parser": "^4.6", - "php": ">=7.3" + "nikic/php-parser": "^5.0", + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-main": "3.0-dev" } }, "autoload": { @@ -5705,7 +6402,8 @@ "homepage": "https://github.com/sebastianbergmann/lines-of-code", "support": { "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", - "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.3" + "security": "https://github.com/sebastianbergmann/lines-of-code/security/policy", + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/3.0.1" }, "funding": [ { @@ -5713,34 +6411,34 @@ "type": "github" } ], - "time": "2020-11-28T06:42:11+00:00" + "time": "2024-07-03T04:58:38+00:00" }, { "name": "sebastian/object-enumerator", - "version": "4.0.4", + "version": "6.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "5c9eeac41b290a3712d88851518825ad78f45c71" + "reference": "f5b498e631a74204185071eb41f33f38d64608aa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71", - "reference": "5c9eeac41b290a3712d88851518825ad78f45c71", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/f5b498e631a74204185071eb41f33f38d64608aa", + "reference": "f5b498e631a74204185071eb41f33f38d64608aa", "shasum": "" }, "require": { - "php": ">=7.3", - "sebastian/object-reflector": "^2.0", - "sebastian/recursion-context": "^4.0" + "php": ">=8.2", + "sebastian/object-reflector": "^4.0", + "sebastian/recursion-context": "^6.0" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -5762,7 +6460,8 @@ "homepage": "https://github.com/sebastianbergmann/object-enumerator/", "support": { "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", - "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4" + "security": "https://github.com/sebastianbergmann/object-enumerator/security/policy", + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/6.0.1" }, "funding": [ { @@ -5770,32 +6469,32 @@ "type": "github" } ], - "time": "2020-10-26T13:12:34+00:00" + "time": "2024-07-03T05:00:13+00:00" }, { "name": "sebastian/object-reflector", - "version": "2.0.4", + "version": "4.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7" + "reference": "6e1a43b411b2ad34146dee7524cb13a068bb35f9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", - "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/6e1a43b411b2ad34146dee7524cb13a068bb35f9", + "reference": "6e1a43b411b2ad34146dee7524cb13a068bb35f9", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-main": "4.0-dev" } }, "autoload": { @@ -5817,7 +6516,8 @@ "homepage": "https://github.com/sebastianbergmann/object-reflector/", "support": { "issues": "https://github.com/sebastianbergmann/object-reflector/issues", - "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4" + "security": "https://github.com/sebastianbergmann/object-reflector/security/policy", + "source": "https://github.com/sebastianbergmann/object-reflector/tree/4.0.1" }, "funding": [ { @@ -5825,32 +6525,32 @@ "type": "github" } ], - "time": "2020-10-26T13:14:26+00:00" + "time": "2024-07-03T05:01:32+00:00" }, { "name": "sebastian/recursion-context", - "version": "4.0.5", + "version": "6.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1" + "reference": "f6458abbf32a6c8174f8f26261475dc133b3d9dc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", - "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/f6458abbf32a6c8174f8f26261475dc133b3d9dc", + "reference": "f6458abbf32a6c8174f8f26261475dc133b3d9dc", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^11.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -5880,40 +6580,53 @@ "homepage": "https://github.com/sebastianbergmann/recursion-context", "support": { "issues": "https://github.com/sebastianbergmann/recursion-context/issues", - "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.5" + "security": "https://github.com/sebastianbergmann/recursion-context/security/policy", + "source": "https://github.com/sebastianbergmann/recursion-context/tree/6.0.3" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/recursion-context", + "type": "tidelift" } ], - "time": "2023-02-03T06:07:39+00:00" + "time": "2025-08-13T04:42:22+00:00" }, { - "name": "sebastian/resource-operations", - "version": "3.0.3", + "name": "sebastian/type", + "version": "5.1.3", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8" + "url": "https://github.com/sebastianbergmann/type.git", + "reference": "f77d2d4e78738c98d9a68d2596fe5e8fa380f449" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", - "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/f77d2d4e78738c98d9a68d2596fe5e8fa380f449", + "reference": "f77d2d4e78738c98d9a68d2596fe5e8fa380f449", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^9.0" + "phpunit/phpunit": "^11.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-main": "5.1-dev" } }, "autoload": { @@ -5928,47 +6641,58 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Provides a list of PHP built-in functions that operate on resources", - "homepage": "https://www.github.com/sebastianbergmann/resource-operations", + "description": "Collection of value objects that represent the types of the PHP type system", + "homepage": "https://github.com/sebastianbergmann/type", "support": { - "issues": "https://github.com/sebastianbergmann/resource-operations/issues", - "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3" + "issues": "https://github.com/sebastianbergmann/type/issues", + "security": "https://github.com/sebastianbergmann/type/security/policy", + "source": "https://github.com/sebastianbergmann/type/tree/5.1.3" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/type", + "type": "tidelift" } ], - "time": "2020-09-28T06:45:17+00:00" + "time": "2025-08-09T06:55:48+00:00" }, { - "name": "sebastian/type", - "version": "3.2.1", + "name": "sebastian/version", + "version": "5.0.2", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/type.git", - "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7" + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "c687e3387b99f5b03b6caa64c74b63e2936ff874" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", - "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c687e3387b99f5b03b6caa64c74b63e2936ff874", + "reference": "c687e3387b99f5b03b6caa64c74b63e2936ff874", "shasum": "" }, "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.5" + "php": ">=8.2" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-main": "5.0-dev" } }, "autoload": { @@ -5987,11 +6711,12 @@ "role": "lead" } ], - "description": "Collection of value objects that represent the types of the PHP type system", - "homepage": "https://github.com/sebastianbergmann/type", + "description": "Library that helps with managing the version number of Git-hosted PHP projects", + "homepage": "https://github.com/sebastianbergmann/version", "support": { - "issues": "https://github.com/sebastianbergmann/type/issues", - "source": "https://github.com/sebastianbergmann/type/tree/3.2.1" + "issues": "https://github.com/sebastianbergmann/version/issues", + "security": "https://github.com/sebastianbergmann/version/security/policy", + "source": "https://github.com/sebastianbergmann/version/tree/5.0.2" }, "funding": [ { @@ -5999,84 +6724,83 @@ "type": "github" } ], - "time": "2023-02-03T06:13:03+00:00" + "time": "2024-10-09T05:16:32+00:00" }, { - "name": "sebastian/version", - "version": "3.0.2", + "name": "staabm/side-effects-detector", + "version": "1.0.5", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/version.git", - "reference": "c6c1022351a901512170118436c764e473f6de8c" + "url": "https://github.com/staabm/side-effects-detector.git", + "reference": "d8334211a140ce329c13726d4a715adbddd0a163" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c", - "reference": "c6c1022351a901512170118436c764e473f6de8c", + "url": "https://api.github.com/repos/staabm/side-effects-detector/zipball/d8334211a140ce329c13726d4a715adbddd0a163", + "reference": "d8334211a140ce329c13726d4a715adbddd0a163", "shasum": "" }, "require": { - "php": ">=7.3" + "ext-tokenizer": "*", + "php": "^7.4 || ^8.0" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } + "require-dev": { + "phpstan/extension-installer": "^1.4.3", + "phpstan/phpstan": "^1.12.6", + "phpunit/phpunit": "^9.6.21", + "symfony/var-dumper": "^5.4.43", + "tomasvotruba/type-coverage": "1.0.0", + "tomasvotruba/unused-public": "1.0.0" }, + "type": "library", "autoload": { "classmap": [ - "src/" + "lib/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } + "description": "A static analysis tool to detect side effects in PHP code", + "keywords": [ + "static analysis" ], - "description": "Library that helps with managing the version number of Git-hosted PHP projects", - "homepage": "https://github.com/sebastianbergmann/version", "support": { - "issues": "https://github.com/sebastianbergmann/version/issues", - "source": "https://github.com/sebastianbergmann/version/tree/3.0.2" + "issues": "https://github.com/staabm/side-effects-detector/issues", + "source": "https://github.com/staabm/side-effects-detector/tree/1.0.5" }, "funding": [ { - "url": "https://github.com/sebastianbergmann", + "url": "https://github.com/staabm", "type": "github" } ], - "time": "2020-09-28T06:39:44+00:00" + "time": "2024-10-20T05:08:20+00:00" }, { "name": "symfony/browser-kit", - "version": "v6.3.2", + "version": "v8.1.0", "source": { "type": "git", "url": "https://github.com/symfony/browser-kit.git", - "reference": "ca4a988488f61ac18f8f845445eabdd36f89aa8d" + "reference": "74e18e582cdda0eca35f7c74e1e48e62f0ede853" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/browser-kit/zipball/ca4a988488f61ac18f8f845445eabdd36f89aa8d", - "reference": "ca4a988488f61ac18f8f845445eabdd36f89aa8d", + "url": "https://api.github.com/repos/symfony/browser-kit/zipball/74e18e582cdda0eca35f7c74e1e48e62f0ede853", + "reference": "74e18e582cdda0eca35f7c74e1e48e62f0ede853", "shasum": "" }, "require": { - "php": ">=8.1", - "symfony/dom-crawler": "^5.4|^6.0" + "php": ">=8.4.1", + "symfony/dom-crawler": "^7.4|^8.0" }, "require-dev": { - "symfony/css-selector": "^5.4|^6.0", - "symfony/http-client": "^5.4|^6.0", - "symfony/mime": "^5.4|^6.0", - "symfony/process": "^5.4|^6.0" + "symfony/css-selector": "^7.4|^8.0", + "symfony/http-client": "^7.4|^8.0", + "symfony/mime": "^7.4|^8.0", + "symfony/process": "^7.4|^8.0" }, "type": "library", "autoload": { @@ -6104,7 +6828,7 @@ "description": "Simulates the behavior of a web browser, allowing you to make requests, click on links and submit forms programmatically", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/browser-kit/tree/v6.3.2" + "source": "https://github.com/symfony/browser-kit/tree/v8.1.0" }, "funding": [ { @@ -6115,29 +6839,33 @@ "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": "2023-07-06T06:56:43+00:00" + "time": "2026-05-29T05:06:50+00:00" }, { "name": "symfony/clock", - "version": "v6.3.4", + "version": "v8.1.0", "source": { "type": "git", "url": "https://github.com/symfony/clock.git", - "reference": "a74086d3db70d0f06ffd84480daa556248706e98" + "reference": "701ef4de9705d6c32292ebee5e8044094a09fbf6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/clock/zipball/a74086d3db70d0f06ffd84480daa556248706e98", - "reference": "a74086d3db70d0f06ffd84480daa556248706e98", + "url": "https://api.github.com/repos/symfony/clock/zipball/701ef4de9705d6c32292ebee5e8044094a09fbf6", + "reference": "701ef4de9705d6c32292ebee5e8044094a09fbf6", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.4.1", "psr/clock": "^1.0" }, "provide": { @@ -6177,7 +6905,7 @@ "time" ], "support": { - "source": "https://github.com/symfony/clock/tree/v6.3.4" + "source": "https://github.com/symfony/clock/tree/v8.1.0" }, "funding": [ { @@ -6188,35 +6916,38 @@ "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": "2023-07-31T11:35:03+00:00" + "time": "2026-05-29T05:06:50+00:00" }, { "name": "symfony/dom-crawler", - "version": "v6.3.4", + "version": "v8.1.0", "source": { "type": "git", "url": "https://github.com/symfony/dom-crawler.git", - "reference": "3fdd2a3d5fdc363b2e8dbf817f9726a4d013cbd1" + "reference": "77ca351474ea018daba5f2e473cbf1b9b8e72ac6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/3fdd2a3d5fdc363b2e8dbf817f9726a4d013cbd1", - "reference": "3fdd2a3d5fdc363b2e8dbf817f9726a4d013cbd1", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/77ca351474ea018daba5f2e473cbf1b9b8e72ac6", + "reference": "77ca351474ea018daba5f2e473cbf1b9b8e72ac6", "shasum": "" }, "require": { - "masterminds/html5": "^2.6", - "php": ">=8.1", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-mbstring": "~1.0" + "php": ">=8.4.1", + "symfony/polyfill-ctype": "^1.8", + "symfony/polyfill-mbstring": "^1.0" }, "require-dev": { - "symfony/css-selector": "^5.4|^6.0" + "symfony/css-selector": "^7.4|^8.0" }, "type": "library", "autoload": { @@ -6244,7 +6975,7 @@ "description": "Eases DOM navigation for HTML and XML documents", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dom-crawler/tree/v6.3.4" + "source": "https://github.com/symfony/dom-crawler/tree/v8.1.0" }, "funding": [ { @@ -6255,31 +6986,34 @@ "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": "2023-08-01T07:43:40+00:00" + "time": "2026-05-29T05:06:50+00:00" }, { "name": "symfony/expression-language", - "version": "v6.3.0", + "version": "v8.1.0", "source": { "type": "git", "url": "https://github.com/symfony/expression-language.git", - "reference": "6d560c4c80e7e328708efd923f93ad67e6a0c1c0" + "reference": "67f31731d5b316d0183c565933017d5d3331d609" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/expression-language/zipball/6d560c4c80e7e328708efd923f93ad67e6a0c1c0", - "reference": "6d560c4c80e7e328708efd923f93ad67e6a0c1c0", + "url": "https://api.github.com/repos/symfony/expression-language/zipball/67f31731d5b316d0183c565933017d5d3331d609", + "reference": "67f31731d5b316d0183c565933017d5d3331d609", "shasum": "" }, "require": { - "php": ">=8.1", - "symfony/cache": "^5.4|^6.0", - "symfony/deprecation-contracts": "^2.5|^3", + "php": ">=8.4.1", + "symfony/cache": "^7.4|^8.0", "symfony/service-contracts": "^2.5|^3" }, "type": "library", @@ -6308,7 +7042,7 @@ "description": "Provides an engine that can compile and evaluate expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/expression-language/tree/v6.3.0" + "source": "https://github.com/symfony/expression-language/tree/v8.1.0" }, "funding": [ { @@ -6319,65 +7053,65 @@ "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": "2023-04-28T16:05:33+00:00" + "time": "2026-05-29T05:06:50+00:00" }, { "name": "symfony/form", - "version": "v6.3.2", + "version": "v8.1.0", "source": { "type": "git", "url": "https://github.com/symfony/form.git", - "reference": "afdadf511e08bc6d4752afb869ce084276aca4e2" + "reference": "82f3b7834a1fa05ea3ea5dc944a15cd350ce60a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/form/zipball/afdadf511e08bc6d4752afb869ce084276aca4e2", - "reference": "afdadf511e08bc6d4752afb869ce084276aca4e2", + "url": "https://api.github.com/repos/symfony/form/zipball/82f3b7834a1fa05ea3ea5dc944a15cd350ce60a8", + "reference": "82f3b7834a1fa05ea3ea5dc944a15cd350ce60a8", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.4.1", "symfony/deprecation-contracts": "^2.5|^3", - "symfony/event-dispatcher": "^5.4|^6.0", - "symfony/options-resolver": "^5.4|^6.0", - "symfony/polyfill-ctype": "~1.8", + "symfony/event-dispatcher": "^7.4|^8.0", + "symfony/options-resolver": "^7.4|^8.0", + "symfony/polyfill-ctype": "^1.8", "symfony/polyfill-intl-icu": "^1.21", - "symfony/polyfill-mbstring": "~1.0", - "symfony/property-access": "^5.4|^6.0", - "symfony/service-contracts": "^2.5|^3" + "symfony/polyfill-mbstring": "^1.0", + "symfony/property-access": "^7.4|^8.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/var-exporter": "^8.1" }, "conflict": { - "symfony/console": "<5.4", - "symfony/dependency-injection": "<5.4", - "symfony/doctrine-bridge": "<5.4.21|>=6,<6.2.7", - "symfony/error-handler": "<5.4", - "symfony/framework-bundle": "<5.4", - "symfony/http-kernel": "<5.4", - "symfony/translation": "<5.4", + "symfony/intl": "<7.4", "symfony/translation-contracts": "<2.5", - "symfony/twig-bridge": "<6.3" + "symfony/validator": "<7.4" }, "require-dev": { "doctrine/collections": "^1.0|^2.0", - "symfony/config": "^5.4|^6.0", - "symfony/console": "^5.4|^6.0", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/expression-language": "^5.4|^6.0", - "symfony/html-sanitizer": "^6.1", - "symfony/http-foundation": "^5.4|^6.0", - "symfony/http-kernel": "^5.4|^6.0", - "symfony/intl": "^5.4|^6.0", - "symfony/security-core": "^6.2", - "symfony/security-csrf": "^5.4|^6.0", - "symfony/translation": "^5.4|^6.0", - "symfony/uid": "^5.4|^6.0", - "symfony/validator": "^5.4|^6.0", - "symfony/var-dumper": "^5.4|^6.0" + "symfony/clock": "^7.4|^8.0", + "symfony/config": "^7.4|^8.0", + "symfony/console": "^7.4|^8.0", + "symfony/dependency-injection": "^7.4|^8.0", + "symfony/expression-language": "^7.4|^8.0", + "symfony/html-sanitizer": "^7.4|^8.0", + "symfony/http-foundation": "^7.4|^8.0", + "symfony/http-kernel": "^7.4|^8.0", + "symfony/intl": "^7.4|^8.0", + "symfony/security-core": "^7.4|^8.0", + "symfony/security-csrf": "^7.4|^8.0", + "symfony/translation": "^7.4|^8.0", + "symfony/uid": "^7.4|^8.0", + "symfony/validator": "^7.4|^8.0", + "symfony/var-dumper": "^7.4|^8.0" }, "type": "library", "autoload": { @@ -6405,7 +7139,7 @@ "description": "Allows to easily create, process and reuse HTML forms", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/form/tree/v6.3.2" + "source": "https://github.com/symfony/form/tree/v8.1.0" }, "funding": [ { @@ -6416,46 +7150,45 @@ "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": "2023-07-26T17:39:03+00:00" + "time": "2026-05-29T05:06:50+00:00" }, { "name": "symfony/monolog-bridge", - "version": "v6.3.1", + "version": "v8.1.0", "source": { "type": "git", "url": "https://github.com/symfony/monolog-bridge.git", - "reference": "04b04b8e465e0fa84940e5609b6796a8b4e51bf1" + "reference": "38563fac41ede8521e5e3dc139a4f2b097471c8c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/04b04b8e465e0fa84940e5609b6796a8b4e51bf1", - "reference": "04b04b8e465e0fa84940e5609b6796a8b4e51bf1", + "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/38563fac41ede8521e5e3dc139a4f2b097471c8c", + "reference": "38563fac41ede8521e5e3dc139a4f2b097471c8c", "shasum": "" }, "require": { - "monolog/monolog": "^1.25.1|^2|^3", - "php": ">=8.1", - "symfony/http-kernel": "^5.4|^6.0", + "monolog/monolog": "^3", + "php": ">=8.4.1", + "symfony/http-kernel": "^7.4|^8.0", "symfony/service-contracts": "^2.5|^3" }, - "conflict": { - "symfony/console": "<5.4", - "symfony/http-foundation": "<5.4", - "symfony/security-core": "<6.0" - }, "require-dev": { - "symfony/console": "^5.4|^6.0", - "symfony/http-client": "^5.4|^6.0", - "symfony/mailer": "^5.4|^6.0", - "symfony/messenger": "^5.4|^6.0", - "symfony/mime": "^5.4|^6.0", - "symfony/security-core": "^6.0", - "symfony/var-dumper": "^5.4|^6.0" + "symfony/console": "^7.4|^8.0", + "symfony/http-client": "^7.4|^8.0", + "symfony/mailer": "^7.4|^8.0", + "symfony/messenger": "^7.4|^8.0", + "symfony/mime": "^7.4|^8.0", + "symfony/security-core": "^7.4|^8.0", + "symfony/var-dumper": "^7.4|^8.0" }, "type": "symfony-bridge", "autoload": { @@ -6483,7 +7216,7 @@ "description": "Provides integration for Monolog with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/monolog-bridge/tree/v6.3.1" + "source": "https://github.com/symfony/monolog-bridge/tree/v8.1.0" }, "funding": [ { @@ -6494,53 +7227,51 @@ "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": "2023-06-08T11:13:32+00:00" + "time": "2026-05-29T05:06:50+00:00" }, { "name": "symfony/monolog-bundle", - "version": "v3.8.0", + "version": "v4.0.2", "source": { "type": "git", "url": "https://github.com/symfony/monolog-bundle.git", - "reference": "a41bbcdc1105603b6d73a7d9a43a3788f8e0fb7d" + "reference": "c012c6aba13129eb02aa7dd61e66e720911d8598" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/a41bbcdc1105603b6d73a7d9a43a3788f8e0fb7d", - "reference": "a41bbcdc1105603b6d73a7d9a43a3788f8e0fb7d", + "url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/c012c6aba13129eb02aa7dd61e66e720911d8598", + "reference": "c012c6aba13129eb02aa7dd61e66e720911d8598", "shasum": "" }, "require": { - "monolog/monolog": "^1.22 || ^2.0 || ^3.0", - "php": ">=7.1.3", - "symfony/config": "~4.4 || ^5.0 || ^6.0", - "symfony/dependency-injection": "^4.4 || ^5.0 || ^6.0", - "symfony/http-kernel": "~4.4 || ^5.0 || ^6.0", - "symfony/monolog-bridge": "~4.4 || ^5.0 || ^6.0" + "composer-runtime-api": "^2.0", + "monolog/monolog": "^3.5", + "php": ">=8.2", + "symfony/config": "^7.3 || ^8.0", + "symfony/dependency-injection": "^7.3 || ^8.0", + "symfony/http-kernel": "^7.3 || ^8.0", + "symfony/monolog-bridge": "^7.3 || ^8.0", + "symfony/polyfill-php84": "^1.30" }, "require-dev": { - "symfony/console": "~4.4 || ^5.0 || ^6.0", - "symfony/phpunit-bridge": "^5.2 || ^6.0", - "symfony/yaml": "~4.4 || ^5.0 || ^6.0" + "phpunit/phpunit": "^11.5.41 || ^12.3", + "symfony/console": "^7.3 || ^8.0", + "symfony/yaml": "^7.3 || ^8.0" }, "type": "symfony-bundle", - "extra": { - "branch-alias": { - "dev-master": "3.x-dev" - } - }, "autoload": { "psr-4": { - "Symfony\\Bundle\\MonologBundle\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "Symfony\\Bundle\\MonologBundle\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -6564,7 +7295,7 @@ ], "support": { "issues": "https://github.com/symfony/monolog-bundle/issues", - "source": "https://github.com/symfony/monolog-bundle/tree/v3.8.0" + "source": "https://github.com/symfony/monolog-bundle/tree/v4.0.2" }, "funding": [ { @@ -6575,29 +7306,33 @@ "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": "2022-05-10T14:24:36+00:00" + "time": "2026-04-02T18:27:21+00:00" }, { "name": "symfony/options-resolver", - "version": "v6.3.0", + "version": "v8.1.0", "source": { "type": "git", "url": "https://github.com/symfony/options-resolver.git", - "reference": "a10f19f5198d589d5c33333cffe98dc9820332dd" + "reference": "88f9c561f678a02d54b897014049fa839e33ff82" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/a10f19f5198d589d5c33333cffe98dc9820332dd", - "reference": "a10f19f5198d589d5c33333cffe98dc9820332dd", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/88f9c561f678a02d54b897014049fa839e33ff82", + "reference": "88f9c561f678a02d54b897014049fa839e33ff82", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.4.1", "symfony/deprecation-contracts": "^2.5|^3" }, "type": "library", @@ -6631,7 +7366,7 @@ "options" ], "support": { - "source": "https://github.com/symfony/options-resolver/tree/v6.3.0" + "source": "https://github.com/symfony/options-resolver/tree/v8.1.0" }, "funding": [ { @@ -6642,36 +7377,37 @@ "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": "2023-05-12T14:21:09+00:00" + "time": "2026-05-29T05:06:50+00:00" }, { "name": "symfony/password-hasher", - "version": "v6.3.8", + "version": "v8.1.0", "source": { "type": "git", "url": "https://github.com/symfony/password-hasher.git", - "reference": "82161c4bebf77900372083ec6e484b5f055b0cba" + "reference": "6934d16beaa4677f2c4584229fff1b51099dd7af" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/password-hasher/zipball/82161c4bebf77900372083ec6e484b5f055b0cba", - "reference": "82161c4bebf77900372083ec6e484b5f055b0cba", + "url": "https://api.github.com/repos/symfony/password-hasher/zipball/6934d16beaa4677f2c4584229fff1b51099dd7af", + "reference": "6934d16beaa4677f2c4584229fff1b51099dd7af", "shasum": "" }, "require": { - "php": ">=8.1" - }, - "conflict": { - "symfony/security-core": "<5.4" + "php": ">=8.4.1" }, "require-dev": { - "symfony/console": "^5.4|^6.0", - "symfony/security-core": "^5.4|^6.0" + "symfony/console": "^7.4|^8.0", + "symfony/security-core": "^7.4|^8.0" }, "type": "library", "autoload": { @@ -6703,7 +7439,7 @@ "password" ], "support": { - "source": "https://github.com/symfony/password-hasher/tree/v6.3.8" + "source": "https://github.com/symfony/password-hasher/tree/v8.1.0" }, "funding": [ { @@ -6714,37 +7450,37 @@ "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": "2023-11-06T10:58:05+00:00" + "time": "2026-05-29T05:06:50+00:00" }, { "name": "symfony/phpunit-bridge", - "version": "v6.3.2", + "version": "v8.1.0", "source": { "type": "git", "url": "https://github.com/symfony/phpunit-bridge.git", - "reference": "e020e1efbd1b42cb670fcd7d19a25abbddba035d" + "reference": "1fed488f8033f2dece371e60a1c66f2add274916" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/e020e1efbd1b42cb670fcd7d19a25abbddba035d", - "reference": "e020e1efbd1b42cb670fcd7d19a25abbddba035d", + "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/1fed488f8033f2dece371e60a1c66f2add274916", + "reference": "1fed488f8033f2dece371e60a1c66f2add274916", "shasum": "" }, "require": { - "php": ">=7.1.3" - }, - "conflict": { - "phpunit/phpunit": "<7.5|9.1.2" + "php": ">=8.1.0" }, "require-dev": { - "symfony/deprecation-contracts": "^2.5|^3.0", - "symfony/error-handler": "^5.4|^6.0", - "symfony/polyfill-php81": "^1.27" + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/error-handler": "^6.4.3|^7.0.3|^8.0" }, "bin": [ "bin/simple-phpunit" @@ -6752,8 +7488,8 @@ "type": "symfony-bridge", "extra": { "thanks": { - "name": "phpunit/phpunit", - "url": "https://github.com/sebastianbergmann/phpunit" + "url": "https://github.com/sebastianbergmann/phpunit", + "name": "phpunit/phpunit" } }, "autoload": { @@ -6764,7 +7500,8 @@ "Symfony\\Bridge\\PhpUnit\\": "" }, "exclude-from-classmap": [ - "/Tests/" + "/Tests/", + "/bin/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -6783,8 +7520,11 @@ ], "description": "Provides utilities for PHPUnit, especially user deprecation notices management", "homepage": "https://symfony.com", + "keywords": [ + "testing" + ], "support": { - "source": "https://github.com/symfony/phpunit-bridge/tree/v6.3.2" + "source": "https://github.com/symfony/phpunit-bridge/tree/v8.1.0" }, "funding": [ { @@ -6795,41 +7535,42 @@ "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": "2023-07-12T16:00:22+00:00" + "time": "2026-05-29T05:06:50+00:00" }, { "name": "symfony/polyfill-intl-icu", - "version": "v1.27.0", + "version": "v1.38.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-icu.git", - "reference": "a3d9148e2c363588e05abbdd4ee4f971f0a5330c" + "reference": "445c90e341fccda10311019cf82ff73bb7343945" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/a3d9148e2c363588e05abbdd4ee4f971f0a5330c", - "reference": "a3d9148e2c363588e05abbdd4ee4f971f0a5330c", + "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/445c90e341fccda10311019cf82ff73bb7343945", + "reference": "445c90e341fccda10311019cf82ff73bb7343945", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "suggest": { "ext-intl": "For best performance and support of other locales than \"en\"" }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.27-dev" - }, "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -6871,7 +7612,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-icu/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-intl-icu/tree/v1.38.0" }, "funding": [ { @@ -6882,42 +7623,61 @@ "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": "2022-11-03T14:55:06+00:00" + "time": "2026-05-25T11:52:53+00:00" }, { - "name": "symfony/polyfill-php72", - "version": "v1.31.0", + "name": "symfony/polyfill-php80", + "version": "v1.37.0", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "fa2ae56c44f03bed91a39bfc9822e31e7c5c38ce" + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "dfb55726c3a76ea3b6459fcfda1ec2d80a682411" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/fa2ae56c44f03bed91a39bfc9822e31e7c5c38ce", - "reference": "fa2ae56c44f03bed91a39bfc9822e31e7c5c38ce", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/dfb55726c3a76ea3b6459fcfda1ec2d80a682411", + "reference": "dfb55726c3a76ea3b6459fcfda1ec2d80a682411", "shasum": "" }, "require": { "php": ">=7.2" }, - "type": "metapackage", + "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, { "name": "Nicolas Grekas", "email": "p@tchwork.com" @@ -6927,7 +7687,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", "homepage": "https://symfony.com", "keywords": [ "compatibility", @@ -6936,7 +7696,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php72/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.37.0" }, "funding": [ { @@ -6947,25 +7707,29 @@ "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": "2024-09-09T11:45:10+00:00" + "time": "2026-04-10T16:19:22+00:00" }, { - "name": "symfony/polyfill-php80", - "version": "v1.31.0", + "name": "symfony/polyfill-php81", + "version": "v1.38.1", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8" + "url": "https://github.com/symfony/polyfill-php81.git", + "reference": "6bfb9c766cacffbc8e118cb87217d08ed84e5cd7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/60328e362d4c2c802a54fcbf04f9d3fb892b4cf8", - "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/6bfb9c766cacffbc8e118cb87217d08ed84e5cd7", + "reference": "6bfb9c766cacffbc8e118cb87217d08ed84e5cd7", "shasum": "" }, "require": { @@ -6974,8 +7738,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -6983,7 +7747,7 @@ "bootstrap.php" ], "psr-4": { - "Symfony\\Polyfill\\Php80\\": "" + "Symfony\\Polyfill\\Php81\\": "" }, "classmap": [ "Resources/stubs" @@ -6994,10 +7758,6 @@ "MIT" ], "authors": [ - { - "name": "Ion Bazan", - "email": "ion.bazan@gmail.com" - }, { "name": "Nicolas Grekas", "email": "p@tchwork.com" @@ -7007,7 +7767,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions", "homepage": "https://symfony.com", "keywords": [ "compatibility", @@ -7016,7 +7776,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-php81/tree/v1.38.1" }, "funding": [ { @@ -7027,25 +7787,29 @@ "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": "2024-09-09T11:45:10+00:00" + "time": "2026-05-26T12:45:58+00:00" }, { - "name": "symfony/polyfill-php81", - "version": "v1.31.0", + "name": "symfony/polyfill-php84", + "version": "v1.38.1", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php81.git", - "reference": "4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c" + "url": "https://github.com/symfony/polyfill-php84.git", + "reference": "f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c", - "reference": "4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c", + "url": "https://api.github.com/repos/symfony/polyfill-php84/zipball/f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa", + "reference": "f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa", "shasum": "" }, "require": { @@ -7054,8 +7818,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -7063,7 +7827,7 @@ "bootstrap.php" ], "psr-4": { - "Symfony\\Polyfill\\Php81\\": "" + "Symfony\\Polyfill\\Php84\\": "" }, "classmap": [ "Resources/stubs" @@ -7083,7 +7847,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions", + "description": "Symfony polyfill backporting some PHP 8.4+ features to lower PHP versions", "homepage": "https://symfony.com", "keywords": [ "compatibility", @@ -7092,7 +7856,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php81/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-php84/tree/v1.38.1" }, "funding": [ { @@ -7103,29 +7867,33 @@ "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": "2024-09-09T11:45:10+00:00" + "time": "2026-05-26T12:51:13+00:00" }, { "name": "symfony/process", - "version": "v6.4.14", + "version": "v8.1.0", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "25214adbb0996d18112548de20c281be9f27279f" + "reference": "c4a9e58f235a6bf7f97ffbfedae2687353ac79e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/25214adbb0996d18112548de20c281be9f27279f", - "reference": "25214adbb0996d18112548de20c281be9f27279f", + "url": "https://api.github.com/repos/symfony/process/zipball/c4a9e58f235a6bf7f97ffbfedae2687353ac79e5", + "reference": "c4a9e58f235a6bf7f97ffbfedae2687353ac79e5", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.4.1" }, "type": "library", "autoload": { @@ -7153,7 +7921,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v6.4.14" + "source": "https://github.com/symfony/process/tree/v8.1.0" }, "funding": [ { @@ -7164,34 +7932,38 @@ "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": "2024-11-06T09:25:01+00:00" + "time": "2026-05-29T05:06:50+00:00" }, { "name": "symfony/property-access", - "version": "v6.3.2", + "version": "v8.1.0", "source": { "type": "git", "url": "https://github.com/symfony/property-access.git", - "reference": "2dc4f9da444b8f8ff592e95d570caad67924f1d0" + "reference": "9261ef060f26cc7b728f67f141ba19b98a6209a9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-access/zipball/2dc4f9da444b8f8ff592e95d570caad67924f1d0", - "reference": "2dc4f9da444b8f8ff592e95d570caad67924f1d0", + "url": "https://api.github.com/repos/symfony/property-access/zipball/9261ef060f26cc7b728f67f141ba19b98a6209a9", + "reference": "9261ef060f26cc7b728f67f141ba19b98a6209a9", "shasum": "" }, "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/property-info": "^5.4|^6.0" + "php": ">=8.4.1", + "symfony/property-info": "^7.4.4|^8.0.4" }, "require-dev": { - "symfony/cache": "^5.4|^6.0" + "symfony/cache": "^7.4|^8.0", + "symfony/var-exporter": "^7.4|^8.0" }, "type": "library", "autoload": { @@ -7230,7 +8002,7 @@ "reflection" ], "support": { - "source": "https://github.com/symfony/property-access/tree/v6.3.2" + "source": "https://github.com/symfony/property-access/tree/v8.1.0" }, "funding": [ { @@ -7241,43 +8013,46 @@ "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": "2023-07-13T15:26:11+00:00" + "time": "2026-05-29T05:06:50+00:00" }, { "name": "symfony/property-info", - "version": "v6.3.0", + "version": "v8.1.0", "source": { "type": "git", "url": "https://github.com/symfony/property-info.git", - "reference": "7f3a03716112269741fe2a809f8f791a371d1fcd" + "reference": "4721e8c56d0cd2378e0ef9a9899f810008b859f7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-info/zipball/7f3a03716112269741fe2a809f8f791a371d1fcd", - "reference": "7f3a03716112269741fe2a809f8f791a371d1fcd", + "url": "https://api.github.com/repos/symfony/property-info/zipball/4721e8c56d0cd2378e0ef9a9899f810008b859f7", + "reference": "4721e8c56d0cd2378e0ef9a9899f810008b859f7", "shasum": "" }, "require": { - "php": ">=8.1", - "symfony/string": "^5.4|^6.0" + "php": ">=8.4.1", + "symfony/string": "^7.4|^8.0", + "symfony/type-info": "^7.4.7|^8.0.7" }, "conflict": { - "phpdocumentor/reflection-docblock": "<5.2", - "phpdocumentor/type-resolver": "<1.5.1", - "symfony/dependency-injection": "<5.4" + "phpdocumentor/reflection-docblock": "<5.2|>=7", + "phpdocumentor/type-resolver": "<1.5.1" }, "require-dev": { - "doctrine/annotations": "^1.10.4|^2", - "phpdocumentor/reflection-docblock": "^5.2", - "phpstan/phpdoc-parser": "^1.0", - "symfony/cache": "^5.4|^6.0", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/serializer": "^5.4|^6.0" + "phpdocumentor/reflection-docblock": "^5.2|^6.0", + "phpstan/phpdoc-parser": "^1.0|^2.0", + "symfony/cache": "^7.4|^8.0", + "symfony/dependency-injection": "^7.4|^8.0", + "symfony/serializer": "^7.4|^8.0" }, "type": "library", "autoload": { @@ -7313,7 +8088,7 @@ "validator" ], "support": { - "source": "https://github.com/symfony/property-info/tree/v6.3.0" + "source": "https://github.com/symfony/property-info/tree/v8.1.0" }, "funding": [ { @@ -7324,78 +8099,69 @@ "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": "2023-05-19T08:06:44+00:00" + "time": "2026-05-29T05:06:50+00:00" }, { "name": "symfony/security-bundle", - "version": "v6.3.4", + "version": "v8.1.0", "source": { "type": "git", "url": "https://github.com/symfony/security-bundle.git", - "reference": "31957477b289220a47880ead3727bf5cc059fa08" + "reference": "0489a6247f729652db9b9ff408f69ac3bee3589e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-bundle/zipball/31957477b289220a47880ead3727bf5cc059fa08", - "reference": "31957477b289220a47880ead3727bf5cc059fa08", + "url": "https://api.github.com/repos/symfony/security-bundle/zipball/0489a6247f729652db9b9ff408f69ac3bee3589e", + "reference": "0489a6247f729652db9b9ff408f69ac3bee3589e", "shasum": "" }, "require": { "composer-runtime-api": ">=2.1", "ext-xml": "*", - "php": ">=8.1", - "symfony/clock": "^6.3", - "symfony/config": "^6.1", - "symfony/dependency-injection": "^6.2", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/event-dispatcher": "^5.4|^6.0", - "symfony/http-foundation": "^6.2", - "symfony/http-kernel": "^6.2", - "symfony/password-hasher": "^5.4|^6.0", - "symfony/security-core": "^6.2", - "symfony/security-csrf": "^5.4|^6.0", - "symfony/security-http": "^6.3" - }, - "conflict": { - "symfony/browser-kit": "<5.4", - "symfony/console": "<5.4", - "symfony/framework-bundle": "<6.3", - "symfony/http-client": "<5.4", - "symfony/ldap": "<5.4", - "symfony/twig-bundle": "<5.4" + "php": ">=8.4.1", + "symfony/clock": "^7.4|^8.0", + "symfony/config": "^7.4|^8.0", + "symfony/dependency-injection": "^7.4|^8.0", + "symfony/event-dispatcher": "^7.4|^8.0", + "symfony/http-foundation": "^7.4|^8.0", + "symfony/http-kernel": "^7.4|^8.0", + "symfony/password-hasher": "^7.4|^8.0", + "symfony/security-core": "^7.4|^8.0", + "symfony/security-csrf": "^7.4|^8.0", + "symfony/security-http": "^8.1", + "symfony/service-contracts": "^2.5|^3" }, "require-dev": { - "doctrine/annotations": "^1.10.4|^2", - "symfony/asset": "^5.4|^6.0", - "symfony/browser-kit": "^5.4|^6.0", - "symfony/console": "^5.4|^6.0", - "symfony/css-selector": "^5.4|^6.0", - "symfony/dom-crawler": "^5.4|^6.0", - "symfony/expression-language": "^5.4|^6.0", - "symfony/form": "^5.4|^6.0", - "symfony/framework-bundle": "^6.3", - "symfony/http-client": "^5.4|^6.0", - "symfony/ldap": "^5.4|^6.0", - "symfony/process": "^5.4|^6.0", - "symfony/rate-limiter": "^5.4|^6.0", - "symfony/serializer": "^5.4|^6.0", - "symfony/translation": "^5.4|^6.0", - "symfony/twig-bridge": "^5.4|^6.0", - "symfony/twig-bundle": "^5.4|^6.0", - "symfony/validator": "^5.4|^6.0", - "symfony/yaml": "^5.4|^6.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" + "symfony/asset": "^7.4|^8.0", + "symfony/browser-kit": "^7.4|^8.0", + "symfony/console": "^7.4|^8.0", + "symfony/css-selector": "^7.4|^8.0", + "symfony/dom-crawler": "^7.4|^8.0", + "symfony/expression-language": "^7.4|^8.0", + "symfony/form": "^7.4|^8.0", + "symfony/framework-bundle": "^7.4|^8.0", + "symfony/http-client": "^7.4|^8.0", + "symfony/ldap": "^7.4|^8.0", + "symfony/process": "^7.4|^8.0", + "symfony/property-info": "^7.4|^8.0", + "symfony/rate-limiter": "^7.4|^8.0", + "symfony/runtime": "^7.4|^8.0", + "symfony/serializer": "^7.4|^8.0", + "symfony/translation": "^7.4|^8.0", + "symfony/twig-bridge": "^7.4|^8.0", + "symfony/twig-bundle": "^7.4|^8.0", + "symfony/validator": "^7.4|^8.0", + "symfony/yaml": "^7.4|^8.0", + "web-token/jwt-library": "^3.3.2|^4.0" }, "type": "symfony-bundle", "autoload": { @@ -7423,7 +8189,7 @@ "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.3.4" + "source": "https://github.com/symfony/security-bundle/tree/v8.1.0" }, "funding": [ { @@ -7434,53 +8200,51 @@ "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": "2023-08-25T08:46:23+00:00" + "time": "2026-05-29T05:06:50+00:00" }, { "name": "symfony/security-core", - "version": "v6.3.7", + "version": "v8.1.0", "source": { "type": "git", "url": "https://github.com/symfony/security-core.git", - "reference": "7ceb30fed93f5ea40ccde3173d1f7712527c0d62" + "reference": "a8239abe61dafdd0c01c0b4019138b2855717f97" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-core/zipball/7ceb30fed93f5ea40ccde3173d1f7712527c0d62", - "reference": "7ceb30fed93f5ea40ccde3173d1f7712527c0d62", + "url": "https://api.github.com/repos/symfony/security-core/zipball/a8239abe61dafdd0c01c0b4019138b2855717f97", + "reference": "a8239abe61dafdd0c01c0b4019138b2855717f97", "shasum": "" }, "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", + "php": ">=8.4.1", "symfony/event-dispatcher-contracts": "^2.5|^3", - "symfony/password-hasher": "^5.4|^6.0", + "symfony/password-hasher": "^7.4|^8.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/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", - "symfony/event-dispatcher": "^5.4|^6.0", - "symfony/expression-language": "^5.4|^6.0", - "symfony/http-foundation": "^5.4|^6.0", - "symfony/ldap": "^5.4|^6.0", - "symfony/string": "^5.4|^6.0", - "symfony/translation": "^5.4|^6.0", - "symfony/validator": "^5.4|^6.0" + "symfony/cache": "^7.4|^8.0", + "symfony/dependency-injection": "^7.4|^8.0", + "symfony/event-dispatcher": "^7.4|^8.0", + "symfony/expression-language": "^7.4|^8.0", + "symfony/http-foundation": "^7.4|^8.0", + "symfony/ldap": "^7.4|^8.0", + "symfony/property-access": "^7.4|^8.0", + "symfony/string": "^7.4|^8.0", + "symfony/translation": "^7.4|^8.0", + "symfony/validator": "^7.4|^8.0" }, "type": "library", "autoload": { @@ -7508,7 +8272,7 @@ "description": "Symfony Security Component - Core Library", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-core/tree/v6.3.7" + "source": "https://github.com/symfony/security-core/tree/v8.1.0" }, "funding": [ { @@ -7519,36 +8283,40 @@ "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": "2023-10-28T23:11:45+00:00" + "time": "2026-05-29T05:06:50+00:00" }, { "name": "symfony/security-csrf", - "version": "v6.3.2", + "version": "v8.1.0", "source": { "type": "git", "url": "https://github.com/symfony/security-csrf.git", - "reference": "63d7b098c448cbddb46ea5eda33b68c1ece6eb5b" + "reference": "c865a8ee0d30b14545d7e5349b8e443f4fa9dc3f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-csrf/zipball/63d7b098c448cbddb46ea5eda33b68c1ece6eb5b", - "reference": "63d7b098c448cbddb46ea5eda33b68c1ece6eb5b", + "url": "https://api.github.com/repos/symfony/security-csrf/zipball/c865a8ee0d30b14545d7e5349b8e443f4fa9dc3f", + "reference": "c865a8ee0d30b14545d7e5349b8e443f4fa9dc3f", "shasum": "" }, "require": { - "php": ">=8.1", - "symfony/security-core": "^5.4|^6.0" - }, - "conflict": { - "symfony/http-foundation": "<5.4" + "php": ">=8.4.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/security-core": "^7.4|^8.0" }, "require-dev": { - "symfony/http-foundation": "^5.4|^6.0" + "psr/log": "^1|^2|^3", + "symfony/http-foundation": "^7.4|^8.0", + "symfony/http-kernel": "^7.4|^8.0" }, "type": "library", "autoload": { @@ -7576,7 +8344,7 @@ "description": "Symfony Security Component - CSRF Library", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-csrf/tree/v6.3.2" + "source": "https://github.com/symfony/security-csrf/tree/v8.1.0" }, "funding": [ { @@ -7587,56 +8355,56 @@ "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": "2023-07-05T08:41:27+00:00" + "time": "2026-05-29T05:06:50+00:00" }, { "name": "symfony/security-http", - "version": "v6.3.8", + "version": "v8.1.0", "source": { "type": "git", "url": "https://github.com/symfony/security-http.git", - "reference": "19f7b5f5d20879a976d6d376e359bc975dfc6002" + "reference": "e0e6c7b9e80eec37248b92359cbd6938c7086f4b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-http/zipball/19f7b5f5d20879a976d6d376e359bc975dfc6002", - "reference": "19f7b5f5d20879a976d6d376e359bc975dfc6002", + "url": "https://api.github.com/repos/symfony/security-http/zipball/e0e6c7b9e80eec37248b92359cbd6938c7086f4b", + "reference": "e0e6c7b9e80eec37248b92359cbd6938c7086f4b", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.4.1", "symfony/deprecation-contracts": "^2.5|^3", - "symfony/http-foundation": "^5.4|^6.0", - "symfony/http-kernel": "^6.3", - "symfony/polyfill-mbstring": "~1.0", - "symfony/property-access": "^5.4|^6.0", - "symfony/security-core": "^6.3", + "symfony/http-foundation": "^7.4|^8.0", + "symfony/http-kernel": "^8.1", + "symfony/polyfill-mbstring": "^1.0", + "symfony/property-access": "^7.4|^8.0", + "symfony/security-core": "^7.4|^8.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" + "symfony/http-client-contracts": "<3.0" }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/cache": "^5.4|^6.0", - "symfony/clock": "^6.3", - "symfony/expression-language": "^5.4|^6.0", + "symfony/cache": "^7.4|^8.0", + "symfony/clock": "^7.4|^8.0", + "symfony/expression-language": "^7.4|^8.0", + "symfony/http-client": "^7.4|^8.0", "symfony/http-client-contracts": "^3.0", - "symfony/rate-limiter": "^5.4|^6.0", - "symfony/routing": "^5.4|^6.0", - "symfony/security-csrf": "^5.4|^6.0", - "symfony/translation": "^5.4|^6.0", - "web-token/jwt-checker": "^3.1", - "web-token/jwt-signature-algorithm-ecdsa": "^3.1" + "symfony/rate-limiter": "^7.4|^8.0", + "symfony/routing": "^7.4|^8.0", + "symfony/security-csrf": "^7.4|^8.0", + "symfony/translation": "^7.4|^8.0", + "web-token/jwt-library": "^3.3.2|^4.0" }, "type": "library", "autoload": { @@ -7664,7 +8432,7 @@ "description": "Symfony Security Component - HTTP Integration", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-http/tree/v6.3.8" + "source": "https://github.com/symfony/security-http/tree/v8.1.0" }, "funding": [ { @@ -7675,29 +8443,33 @@ "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": "2023-11-09T21:20:12+00:00" + "time": "2026-05-29T05:06:50+00:00" }, { "name": "symfony/stopwatch", - "version": "v6.3.0", + "version": "v8.1.0", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "fc47f1015ec80927ff64ba9094dfe8b9d48fe9f2" + "reference": "21c07b026905d596e8379caeb115d87aa479499d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/fc47f1015ec80927ff64ba9094dfe8b9d48fe9f2", - "reference": "fc47f1015ec80927ff64ba9094dfe8b9d48fe9f2", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/21c07b026905d596e8379caeb115d87aa479499d", + "reference": "21c07b026905d596e8379caeb115d87aa479499d", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.4.1", "symfony/service-contracts": "^2.5|^3" }, "type": "library", @@ -7726,7 +8498,7 @@ "description": "Provides a way to profile code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/stopwatch/tree/v6.3.0" + "source": "https://github.com/symfony/stopwatch/tree/v8.1.0" }, "funding": [ { @@ -7737,60 +8509,58 @@ "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": "2023-02-16T10:14:28+00:00" + "time": "2026-05-29T05:06:50+00:00" }, { "name": "symfony/translation", - "version": "v6.3.3", + "version": "v8.1.0", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "3ed078c54bc98bbe4414e1e9b2d5e85ed5a5c8bd" + "reference": "b2bd012ca28c4acae830ee1206a5b6e35dd99693" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/3ed078c54bc98bbe4414e1e9b2d5e85ed5a5c8bd", - "reference": "3ed078c54bc98bbe4414e1e9b2d5e85ed5a5c8bd", + "url": "https://api.github.com/repos/symfony/translation/zipball/b2bd012ca28c4acae830ee1206a5b6e35dd99693", + "reference": "b2bd012ca28c4acae830ee1206a5b6e35dd99693", "shasum": "" }, "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/polyfill-mbstring": "~1.0", - "symfony/translation-contracts": "^2.5|^3.0" + "php": ">=8.4.1", + "symfony/polyfill-mbstring": "^1.0", + "symfony/translation-contracts": "^3.6.1" }, "conflict": { - "symfony/config": "<5.4", - "symfony/console": "<5.4", - "symfony/dependency-injection": "<5.4", + "nikic/php-parser": "<5.0", "symfony/http-client-contracts": "<2.5", - "symfony/http-kernel": "<5.4", - "symfony/service-contracts": "<2.5", - "symfony/twig-bundle": "<5.4", - "symfony/yaml": "<5.4" + "symfony/service-contracts": "<2.5" }, "provide": { "symfony/translation-implementation": "2.3|3.0" }, "require-dev": { - "nikic/php-parser": "^4.13", + "nikic/php-parser": "^5.0", "psr/log": "^1|^2|^3", - "symfony/config": "^5.4|^6.0", - "symfony/console": "^5.4|^6.0", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/finder": "^5.4|^6.0", + "symfony/config": "^7.4|^8.0", + "symfony/console": "^7.4|^8.0", + "symfony/dependency-injection": "^7.4|^8.0", + "symfony/finder": "^7.4|^8.0", "symfony/http-client-contracts": "^2.5|^3.0", - "symfony/http-kernel": "^5.4|^6.0", - "symfony/intl": "^5.4|^6.0", + "symfony/http-kernel": "^7.4|^8.0", + "symfony/intl": "^7.4|^8.0", "symfony/polyfill-intl-icu": "^1.21", - "symfony/routing": "^5.4|^6.0", + "symfony/routing": "^7.4|^8.0", "symfony/service-contracts": "^2.5|^3", - "symfony/yaml": "^5.4|^6.0" + "symfony/yaml": "^7.4|^8.0" }, "type": "library", "autoload": { @@ -7821,7 +8591,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v6.3.3" + "source": "https://github.com/symfony/translation/tree/v8.1.0" }, "funding": [ { @@ -7832,25 +8602,29 @@ "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": "2023-07-31T07:08:24+00:00" + "time": "2026-05-29T05:06:50+00:00" }, { "name": "symfony/translation-contracts", - "version": "v3.3.0", + "version": "v3.7.0", "source": { "type": "git", "url": "https://github.com/symfony/translation-contracts.git", - "reference": "02c24deb352fb0d79db5486c0c79905a85e37e86" + "reference": "0ab302977a952b42fd51475c4ebac81f8da0a95d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/02c24deb352fb0d79db5486c0c79905a85e37e86", - "reference": "02c24deb352fb0d79db5486c0c79905a85e37e86", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/0ab302977a952b42fd51475c4ebac81f8da0a95d", + "reference": "0ab302977a952b42fd51475c4ebac81f8da0a95d", "shasum": "" }, "require": { @@ -7858,12 +8632,12 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "3.4-dev" - }, "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, + "branch-alias": { + "dev-main": "3.7-dev" } }, "autoload": { @@ -7899,7 +8673,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v3.3.0" + "source": "https://github.com/symfony/translation-contracts/tree/v3.7.0" }, "funding": [ { @@ -7910,76 +8684,76 @@ "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": "2023-05-30T17:17:10+00:00" + "time": "2026-01-05T13:30:16+00:00" }, { "name": "symfony/twig-bridge", - "version": "v6.3.8", + "version": "v8.1.0", "source": { "type": "git", "url": "https://github.com/symfony/twig-bridge.git", - "reference": "c51407623959a626784ff302419026f56dc4e1ba" + "reference": "25bb8c01edaab85e13142f6010df09b990388343" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/c51407623959a626784ff302419026f56dc4e1ba", - "reference": "c51407623959a626784ff302419026f56dc4e1ba", + "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/25bb8c01edaab85e13142f6010df09b990388343", + "reference": "25bb8c01edaab85e13142f6010df09b990388343", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.4.1", "symfony/translation-contracts": "^2.5|^3", - "twig/twig": "^2.13|^3.0.4" + "twig/twig": "^3.25" }, "conflict": { - "phpdocumentor/reflection-docblock": "<3.2.2", - "phpdocumentor/type-resolver": "<1.4.0", - "symfony/console": "<5.4", - "symfony/form": "<6.3", - "symfony/http-foundation": "<5.4", - "symfony/http-kernel": "<6.2", - "symfony/mime": "<6.2", - "symfony/translation": "<5.4", - "symfony/workflow": "<5.4" + "phpdocumentor/reflection-docblock": "<5.2|>=7", + "phpdocumentor/type-resolver": "<1.5.1", + "symfony/form": "<7.4.4|>8.0,<8.0.4", + "symfony/mime": "<7.4.9|>8.0,<8.0.9" }, "require-dev": { - "doctrine/annotations": "^1.12|^2", "egulias/email-validator": "^2.1.10|^3|^4", "league/html-to-markdown": "^5.0", - "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", - "symfony/asset": "^5.4|^6.0", - "symfony/asset-mapper": "^6.3", - "symfony/console": "^5.4|^6.0", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/expression-language": "^5.4|^6.0", - "symfony/finder": "^5.4|^6.0", - "symfony/form": "^6.3", - "symfony/html-sanitizer": "^6.1", - "symfony/http-foundation": "^5.4|^6.0", - "symfony/http-kernel": "^6.2", - "symfony/intl": "^5.4|^6.0", - "symfony/mime": "^6.2", - "symfony/polyfill-intl-icu": "~1.0", - "symfony/property-info": "^5.4|^6.0", - "symfony/routing": "^5.4|^6.0", + "phpdocumentor/reflection-docblock": "^5.2|^6.0", + "symfony/asset": "^7.4|^8.0", + "symfony/asset-mapper": "^7.4|^8.0", + "symfony/console": "^7.4|^8.0", + "symfony/dependency-injection": "^7.4|^8.0", + "symfony/emoji": "^7.4|^8.0", + "symfony/expression-language": "^7.4|^8.0", + "symfony/finder": "^7.4|^8.0", + "symfony/form": "^7.4.4|^8.0.4", + "symfony/html-sanitizer": "^7.4|^8.0", + "symfony/http-foundation": "^7.4|^8.0", + "symfony/http-kernel": "^7.4|^8.0", + "symfony/intl": "^7.4|^8.0", + "symfony/mime": "^7.4.9|^8.0.9", + "symfony/polyfill-intl-icu": "^1.0", + "symfony/property-info": "^7.4|^8.0", + "symfony/routing": "^7.4|^8.0", "symfony/security-acl": "^2.8|^3.0", - "symfony/security-core": "^5.4|^6.0", - "symfony/security-csrf": "^5.4|^6.0", - "symfony/security-http": "^5.4|^6.0", - "symfony/serializer": "^6.2", - "symfony/stopwatch": "^5.4|^6.0", - "symfony/translation": "^6.1", - "symfony/web-link": "^5.4|^6.0", - "symfony/workflow": "^5.4|^6.0", - "symfony/yaml": "^5.4|^6.0", - "twig/cssinliner-extra": "^2.12|^3", - "twig/inky-extra": "^2.12|^3", - "twig/markdown-extra": "^2.12|^3" + "symfony/security-core": "^7.4|^8.0", + "symfony/security-csrf": "^7.4|^8.0", + "symfony/security-http": "^7.4|^8.0", + "symfony/serializer": "^7.4|^8.0", + "symfony/stopwatch": "^7.4|^8.0", + "symfony/translation": "^7.4|^8.0", + "symfony/validator": "^7.4|^8.0", + "symfony/web-link": "^7.4|^8.0", + "symfony/workflow": "^7.4|^8.0", + "symfony/yaml": "^7.4|^8.0", + "twig/cssinliner-extra": "^3", + "twig/inky-extra": "^3", + "twig/markdown-extra": "^3" }, "type": "symfony-bridge", "autoload": { @@ -8007,7 +8781,7 @@ "description": "Provides integration for Twig with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/twig-bridge/tree/v6.3.8" + "source": "https://github.com/symfony/twig-bridge/tree/v8.1.0" }, "funding": [ { @@ -8018,53 +8792,52 @@ "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": "2023-11-09T21:20:12+00:00" + "time": "2026-05-29T05:06:50+00:00" }, { "name": "symfony/twig-bundle", - "version": "v6.3.0", + "version": "v8.1.0", "source": { "type": "git", "url": "https://github.com/symfony/twig-bundle.git", - "reference": "d0cd4d1675c0582d27c2e8bb0dc27c0303d8e3ea" + "reference": "b7f4a471a07b8b52174d153e4db12f46954192ed" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/d0cd4d1675c0582d27c2e8bb0dc27c0303d8e3ea", - "reference": "d0cd4d1675c0582d27c2e8bb0dc27c0303d8e3ea", + "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/b7f4a471a07b8b52174d153e4db12f46954192ed", + "reference": "b7f4a471a07b8b52174d153e4db12f46954192ed", "shasum": "" }, "require": { "composer-runtime-api": ">=2.1", - "php": ">=8.1", - "symfony/config": "^6.1", - "symfony/dependency-injection": "^6.1", - "symfony/http-foundation": "^5.4|^6.0", - "symfony/http-kernel": "^6.2", - "symfony/twig-bridge": "^6.3", - "twig/twig": "^2.13|^3.0.4" - }, - "conflict": { - "symfony/framework-bundle": "<5.4", - "symfony/translation": "<5.4" + "php": ">=8.4.1", + "symfony/config": "^7.4|^8.0", + "symfony/dependency-injection": "^7.4|^8.0", + "symfony/http-foundation": "^7.4|^8.0", + "symfony/http-kernel": "^7.4|^8.0", + "symfony/twig-bridge": "^7.4|^8.0" }, "require-dev": { - "doctrine/annotations": "^1.10.4|^2", - "symfony/asset": "^5.4|^6.0", - "symfony/expression-language": "^5.4|^6.0", - "symfony/finder": "^5.4|^6.0", - "symfony/form": "^5.4|^6.0", - "symfony/framework-bundle": "^5.4|^6.0", - "symfony/routing": "^5.4|^6.0", - "symfony/stopwatch": "^5.4|^6.0", - "symfony/translation": "^5.4|^6.0", - "symfony/web-link": "^5.4|^6.0", - "symfony/yaml": "^5.4|^6.0" + "symfony/asset": "^7.4|^8.0", + "symfony/expression-language": "^7.4|^8.0", + "symfony/finder": "^7.4|^8.0", + "symfony/form": "^7.4|^8.0", + "symfony/framework-bundle": "^7.4|^8.0", + "symfony/routing": "^7.4|^8.0", + "symfony/runtime": "^7.4|^8.0", + "symfony/stopwatch": "^7.4|^8.0", + "symfony/translation": "^7.4|^8.0", + "symfony/web-link": "^7.4|^8.0", + "symfony/yaml": "^7.4|^8.0" }, "type": "symfony-bundle", "autoload": { @@ -8092,7 +8865,89 @@ "description": "Provides a tight integration of Twig into the Symfony full-stack framework", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/twig-bundle/tree/v6.3.0" + "source": "https://github.com/symfony/twig-bundle/tree/v8.1.0" + }, + "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": "2026-05-29T05:06:50+00:00" + }, + { + "name": "symfony/type-info", + "version": "v8.1.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/type-info.git", + "reference": "9f24df8a79781b9b9f030fea7dfd2f3bd1e7e7e7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/type-info/zipball/9f24df8a79781b9b9f030fea7dfd2f3bd1e7e7e7", + "reference": "9f24df8a79781b9b9f030fea7dfd2f3bd1e7e7e7", + "shasum": "" + }, + "require": { + "php": ">=8.4.1", + "psr/container": "^1.1|^2.0" + }, + "conflict": { + "phpstan/phpdoc-parser": "<1.30" + }, + "require-dev": { + "phpstan/phpdoc-parser": "^1.30|^2.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\TypeInfo\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mathias Arlaud", + "email": "mathias.arlaud@gmail.com" + }, + { + "name": "Baptiste LEDUC", + "email": "baptiste.leduc@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Extracts PHP types information.", + "homepage": "https://symfony.com", + "keywords": [ + "PHPStan", + "phpdoc", + "symfony", + "type" + ], + "support": { + "source": "https://github.com/symfony/type-info/tree/v8.1.0" }, "funding": [ { @@ -8103,64 +8958,64 @@ "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": "2023-05-06T09:53:41+00:00" + "time": "2026-05-29T05:06:50+00:00" }, { "name": "symfony/validator", - "version": "v6.3.4", + "version": "v8.1.0", "source": { "type": "git", "url": "https://github.com/symfony/validator.git", - "reference": "0c8435154920b9bbe93bece675234c244cadf73b" + "reference": "b122b2e384fa84166213ce98b887f01a3eea8d94" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/0c8435154920b9bbe93bece675234c244cadf73b", - "reference": "0c8435154920b9bbe93bece675234c244cadf73b", + "url": "https://api.github.com/repos/symfony/validator/zipball/b122b2e384fa84166213ce98b887f01a3eea8d94", + "reference": "b122b2e384fa84166213ce98b887f01a3eea8d94", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.4.1", "symfony/deprecation-contracts": "^2.5|^3", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php83": "^1.27", + "symfony/polyfill-ctype": "^1.8", + "symfony/polyfill-mbstring": "^1.0", "symfony/translation-contracts": "^2.5|^3" }, "conflict": { - "doctrine/annotations": "<1.13", "doctrine/lexer": "<1.1", - "symfony/dependency-injection": "<5.4", - "symfony/expression-language": "<5.4", - "symfony/http-kernel": "<5.4", - "symfony/intl": "<5.4", - "symfony/property-info": "<5.4", - "symfony/translation": "<5.4", - "symfony/yaml": "<5.4" + "symfony/doctrine-bridge": "<7.4", + "symfony/expression-language": "<7.4" }, "require-dev": { - "doctrine/annotations": "^1.13|^2", "egulias/email-validator": "^2.1.10|^3|^4", - "symfony/cache": "^5.4|^6.0", - "symfony/config": "^5.4|^6.0", - "symfony/console": "^5.4|^6.0", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/expression-language": "^5.4|^6.0", - "symfony/finder": "^5.4|^6.0", - "symfony/http-client": "^5.4|^6.0", - "symfony/http-foundation": "^5.4|^6.0", - "symfony/http-kernel": "^5.4|^6.0", - "symfony/intl": "^5.4|^6.0", - "symfony/mime": "^5.4|^6.0", - "symfony/property-access": "^5.4|^6.0", - "symfony/property-info": "^5.4|^6.0", - "symfony/translation": "^5.4|^6.0", - "symfony/yaml": "^5.4|^6.0" + "symfony/cache": "^7.4|^8.0", + "symfony/clock": "^7.4|^8.0", + "symfony/config": "^7.4|^8.0", + "symfony/console": "^7.4|^8.0", + "symfony/dependency-injection": "^7.4|^8.0", + "symfony/expression-language": "^7.4|^8.0", + "symfony/finder": "^7.4|^8.0", + "symfony/http-client": "^7.4|^8.0", + "symfony/http-foundation": "^7.4|^8.0", + "symfony/http-kernel": "^7.4|^8.0", + "symfony/intl": "^7.4|^8.0", + "symfony/mime": "^7.4|^8.0", + "symfony/process": "^7.4|^8.0", + "symfony/property-access": "^7.4|^8.0", + "symfony/property-info": "^7.4|^8.0", + "symfony/string": "^7.4|^8.0", + "symfony/translation": "^7.4|^8.0", + "symfony/type-info": "^7.4|^8.0", + "symfony/yaml": "^7.4|^8.0" }, "type": "library", "autoload": { @@ -8168,7 +9023,8 @@ "Symfony\\Component\\Validator\\": "" }, "exclude-from-classmap": [ - "/Tests/" + "/Tests/", + "/Resources/bin/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -8188,7 +9044,7 @@ "description": "Provides tools to validate values", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/validator/tree/v6.3.4" + "source": "https://github.com/symfony/validator/tree/v8.1.0" }, "funding": [ { @@ -8199,37 +9055,41 @@ "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": "2023-08-17T15:49:05+00:00" + "time": "2026-05-29T05:06:50+00:00" }, { "name": "symfony/yaml", - "version": "v6.3.3", + "version": "v8.1.0", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "e23292e8c07c85b971b44c1c4b87af52133e2add" + "reference": "efb42bd2c6f4f3ccfd4683583449938b5fc146b0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/e23292e8c07c85b971b44c1c4b87af52133e2add", - "reference": "e23292e8c07c85b971b44c1c4b87af52133e2add", + "url": "https://api.github.com/repos/symfony/yaml/zipball/efb42bd2c6f4f3ccfd4683583449938b5fc146b0", + "reference": "efb42bd2c6f4f3ccfd4683583449938b5fc146b0", "shasum": "" }, "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", + "php": ">=8.4.1", "symfony/polyfill-ctype": "^1.8" }, "conflict": { - "symfony/console": "<5.4" + "symfony/console": "<7.4" }, "require-dev": { - "symfony/console": "^5.4|^6.0" + "symfony/console": "^7.4|^8.0", + "yaml/yaml-test-suite": "*" }, "bin": [ "Resources/bin/yaml-lint" @@ -8260,7 +9120,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v6.3.3" + "source": "https://github.com/symfony/yaml/tree/v8.1.0" }, "funding": [ { @@ -8271,25 +9131,29 @@ "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": "2023-07-31T07:08:24+00:00" + "time": "2026-05-29T05:06:50+00:00" }, { "name": "theseer/tokenizer", - "version": "1.2.1", + "version": "1.3.1", "source": { "type": "git", "url": "https://github.com/theseer/tokenizer.git", - "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e" + "reference": "b7489ce515e168639d17feec34b8847c326b0b3c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e", - "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b7489ce515e168639d17feec34b8847c326b0b3c", + "reference": "b7489ce515e168639d17feec34b8847c326b0b3c", "shasum": "" }, "require": { @@ -8318,7 +9182,7 @@ "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", "support": { "issues": "https://github.com/theseer/tokenizer/issues", - "source": "https://github.com/theseer/tokenizer/tree/1.2.1" + "source": "https://github.com/theseer/tokenizer/tree/1.3.1" }, "funding": [ { @@ -8326,30 +9190,31 @@ "type": "github" } ], - "time": "2021-07-28T10:34:58+00:00" + "time": "2025-11-17T20:03:58+00:00" }, { "name": "twig/twig", - "version": "v3.14.2", + "version": "v3.27.1", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "0b6f9d8370bb3b7f1ce5313ed8feb0fafd6e399a" + "reference": "ae2071bffb38f04847fc0864d730c94b9cb8ab74" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/0b6f9d8370bb3b7f1ce5313ed8feb0fafd6e399a", - "reference": "0b6f9d8370bb3b7f1ce5313ed8feb0fafd6e399a", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/ae2071bffb38f04847fc0864d730c94b9cb8ab74", + "reference": "ae2071bffb38f04847fc0864d730c94b9cb8ab74", "shasum": "" }, "require": { - "php": ">=8.0.2", + "php": ">=8.1.0", "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-ctype": "^1.8", - "symfony/polyfill-mbstring": "^1.3", - "symfony/polyfill-php81": "^1.29" + "symfony/polyfill-mbstring": "^1.3" }, "require-dev": { + "php-cs-fixer/shim": "^3.0@stable", + "phpstan/phpstan": "^2.0@stable", "psr/container": "^1.0|^2.0", "symfony/phpunit-bridge": "^5.4.9|^6.4|^7.0" }, @@ -8393,7 +9258,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v3.14.2" + "source": "https://github.com/twigphp/Twig/tree/v3.27.1" }, "funding": [ { @@ -8405,18 +9270,21 @@ "type": "tidelift" } ], - "time": "2024-11-07T12:36:22+00:00" + "time": "2026-05-30T17:09:26+00:00" } ], "aliases": [], "minimum-stability": "dev", - "stability-flags": [], + "stability-flags": { + "imatic/form-bundle": 20, + "imatic/testing": 20 + }, "prefer-stable": true, "prefer-lowest": false, "platform": { - "php": "^7.4 || ^8.0", + "php": "^8.5", "ext-json": "*" }, - "platform-dev": [], - "plugin-api-version": "2.6.0" + "platform-dev": {}, + "plugin-api-version": "2.9.0" }