diff --git a/Entity/LibrariesHubCache.php b/Entity/LibrariesHubCache.php index cc45f85..03093a4 100644 --- a/Entity/LibrariesHubCache.php +++ b/Entity/LibrariesHubCache.php @@ -4,7 +4,7 @@ use Doctrine\ORM\Mapping as ORM; -#[ORM\Entity()] +#[ORM\Entity] #[ORM\Table('h5p_libraries_hub_cache')] class LibrariesHubCache { diff --git a/Entity/LibrariesLanguagesRepository.php b/Entity/LibrariesLanguagesRepository.php index 0831fa6..799ed96 100644 --- a/Entity/LibrariesLanguagesRepository.php +++ b/Entity/LibrariesLanguagesRepository.php @@ -5,6 +5,7 @@ use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; use Doctrine\ORM\NoResultException; use Doctrine\Persistence\ManagerRegistry; +use Studit\H5PBundle\Service\DoctrineParser; /** * LibrariesLanguagesRepository @@ -22,7 +23,12 @@ public function findForLibrary($machineName, $majorVersion, $minorVersion, $lang ->select('ll.languageJson') ->join('ll.library', 'l', 'WITH', 'l.machineName = :machineName and l.majorVersion = :majorVersion and l.minorVersion = :minorVersion') ->where('ll.languageCode = :languageCode') - ->setParameters(['majorVersion' => $majorVersion, 'machineName' => $machineName, 'minorVersion' => $minorVersion, 'languageCode' => $languageCode]); + ->setParameters(DoctrineParser::buildParams([ + 'majorVersion' => $majorVersion, + 'machineName' => $machineName, + 'minorVersion' => $minorVersion, + 'languageCode' => $languageCode + ])); try { $result = $qb->getQuery()->getSingleResult(); } catch (NoResultException $e) { @@ -35,7 +41,11 @@ public function findForLibraryAllLanguages($machineName, $majorVersion, $minorVe $qb = $this->createQueryBuilder('ll') ->select('ll.languageCode') ->join('ll.library', 'l', 'WITH', 'l.machineName = :machineName and l.majorVersion = :majorVersion and l.minorVersion = :minorVersion') - ->setParameters(['majorVersion' => $majorVersion, 'machineName' => $machineName, 'minorVersion' => $minorVersion]); + ->setParameters(DoctrineParser::buildParams([ + 'majorVersion' => $majorVersion, + 'machineName' => $machineName, + 'minorVersion' => $minorVersion + ])); try { $results = $qb->getQuery()->getArrayResult(); } catch (NoResultException $e) { diff --git a/Entity/Library.php b/Entity/Library.php index 902d2b3..0556bac 100644 --- a/Entity/Library.php +++ b/Entity/Library.php @@ -116,7 +116,7 @@ class Library #[ORM\OneToMany(targetEntity: ContentLibraries::class, mappedBy: "library")] /** - * @var ArrayCollection|Collection + * @var ArrayCollection|Collection $contentLibraries */ private ArrayCollection|Collection $contentLibraries; /** diff --git a/Entity/LibraryRepository.php b/Entity/LibraryRepository.php index 212f266..d12ce43 100644 --- a/Entity/LibraryRepository.php +++ b/Entity/LibraryRepository.php @@ -7,6 +7,7 @@ use Doctrine\ORM\AbstractQuery; use Doctrine\ORM\NoResultException; use Doctrine\Persistence\ManagerRegistry; +use Studit\H5PBundle\Service\DoctrineParser; /** * LibraryRepository @@ -95,11 +96,11 @@ public function findHasSemantics($machineName, $majorVersion, $minorVersion) $qb = $this->createQueryBuilder('l') ->select('l') ->where('l.machineName = :machineName and l.majorVersion = :majorVersion and l.minorVersion = :minorVersion and l.semantics is not null') - ->setParameters([ + ->setParameters(DoctrineParser::buildParams([ 'machineName' => $machineName, 'majorVersion' => $majorVersion, 'minorVersion' => $minorVersion - ]); + ])); try { $library = $qb->getQuery()->getSingleResult(); } catch (NoResultException $e) { @@ -123,7 +124,7 @@ public function findOneArrayBy($parameters) { $qb = $this->createQueryBuilder('l') ->where('l.machineName = :machineName and l.majorVersion = :majorVersion and l.minorVersion = :minorVersion') - ->setParameters($parameters); + ->setParameters(DoctrineParser::buildParams($parameters)); return $qb->getQuery()->getOneOrNullResult(AbstractQuery::HYDRATE_ARRAY); } public function findIdBy($machineName, $majorVersion, $minorVersion) @@ -131,11 +132,11 @@ public function findIdBy($machineName, $majorVersion, $minorVersion) $qb = $this->createQueryBuilder('l') ->select('l.id') ->where('l.machineName = :machineName and l.majorVersion = :majorVersion and l.minorVersion = :minorVersion and l.semantics is not null') - ->setParameters([ + ->setParameters(DoctrineParser::buildParams([ 'machineName' => $machineName, 'majorVersion' => $majorVersion, 'minorVersion' => $minorVersion - ]); + ])); try { return $qb->getQuery()->getSingleScalarResult(); } catch (NoResultException $e) { @@ -147,12 +148,12 @@ public function isPatched($library): bool $qb = $this->createQueryBuilder('l') ->select('COUNT(l)') ->where('l.machineName = :machineName and l.majorVersion = :majorVersion and l.minorVersion = :minorVersion and l.patchVersion < :patchVersion') - ->setParameters([ + ->setParameters(DoctrineParser::buildParams([ 'machineName' => $library['machineName'], 'majorVersion' => $library['majorVersion'], 'minorVersion' => $library['minorVersion'], 'patchVersion' => $library['patchVersion'] - ]); + ])); return $qb->getQuery()->getSingleScalarResult() > 0; } } diff --git a/Service/DoctrineParser.php b/Service/DoctrineParser.php new file mode 100644 index 0000000..0518cdc --- /dev/null +++ b/Service/DoctrineParser.php @@ -0,0 +1,38 @@ + $val){ + $paramsCollection[] = new \Doctrine\ORM\Query\Parameter($k, $val); + } + + return new ArrayCollection($paramsCollection); + } + // For Doctrine ORM v2, return the parameters as is + return $params; + } +} \ No newline at end of file diff --git a/composer.json b/composer.json index e5b72b5..56b9c8b 100644 --- a/composer.json +++ b/composer.json @@ -1,6 +1,6 @@ { "name": "jorisdugue/h5p-bundle", - "version": "3.0.1", + "version": "3.0.2", "type": "symfony-bundle", "description": "H5P Bundle for Symfony 5, 6 and Symfony 7", "keywords": [ @@ -29,6 +29,7 @@ ], "require": { "php": ">= 8.1", + "composer-runtime-api": "^2", "doctrine/orm": "~2.0|~3.0", "guzzlehttp/guzzle": "^7.9", "h5p/h5p-core": "1.27",