From 7ef020e8898c75695fc32e0c898f96c2f5952383 Mon Sep 17 00:00:00 2001 From: n0099 Date: Fri, 11 Oct 2024 03:08:38 +0000 Subject: [PATCH] * excluding `BaseRepository` from symfony autowire as `ServiceEntityRepositoryProxy->__construct()` require param `string $entityClass` that was set by its derived repository classes * fix the returned type of `getForum()` should be partial projected DTO array @ `ForumRepository` @ `App\Repository` * prefer static closure for microbenchmark: https://github.com/laravel/framework/pull/33126 $ ./vendor/bin/pint @ be --- be/bin/console | 2 +- be/public/index.php | 2 +- be/src/Repository/BaseRepository.php | 2 ++ be/src/Repository/ForumRepository.php | 2 +- be/src/Repository/Post/Content/SubReplyContentRepository.php | 2 +- be/src/Repository/Post/ReplyRepository.php | 4 ++-- be/src/Repository/Post/SubReplyRepository.php | 2 +- be/src/Repository/UserRepository.php | 2 +- be/src/Validator/DateTimeRangeValidator.php | 2 +- 9 files changed, 11 insertions(+), 9 deletions(-) diff --git a/be/bin/console b/be/bin/console index d8d530e2..a0b67ba3 100644 --- a/be/bin/console +++ b/be/bin/console @@ -14,7 +14,7 @@ if (!is_file(dirname(__DIR__).'/vendor/autoload_runtime.php')) { require_once dirname(__DIR__).'/vendor/autoload_runtime.php'; -return function (array $context) { +return static function (array $context) { $kernel = new Kernel($context['APP_ENV'], (bool) $context['APP_DEBUG']); return new Application($kernel); diff --git a/be/public/index.php b/be/public/index.php index 7fbc8cf6..ea9912e9 100644 --- a/be/public/index.php +++ b/be/public/index.php @@ -4,6 +4,6 @@ require_once dirname(__DIR__) . '/vendor/autoload_runtime.php'; -return function (array $context) { +return static function (array $context) { return new Kernel($context['APP_ENV'], (bool) $context['APP_DEBUG']); }; diff --git a/be/src/Repository/BaseRepository.php b/be/src/Repository/BaseRepository.php index 45007983..2e9fe4a5 100644 --- a/be/src/Repository/BaseRepository.php +++ b/be/src/Repository/BaseRepository.php @@ -7,11 +7,13 @@ use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; use Doctrine\ORM\AbstractQuery; use Doctrine\ORM\Query; +use Symfony\Component\DependencyInjection\Attribute\Exclude; /** * @template T * @extends ServiceEntityRepository */ +#[Exclude] class BaseRepository extends ServiceEntityRepository { protected function createQuery(string $dql): Query diff --git a/be/src/Repository/ForumRepository.php b/be/src/Repository/ForumRepository.php index 4168bdc3..396cd6d3 100644 --- a/be/src/Repository/ForumRepository.php +++ b/be/src/Repository/ForumRepository.php @@ -31,7 +31,7 @@ public function isForumExists(int $fid): bool return $this->isEntityExists($dql, 'fid', $fid); } - public function getForum(int $fid): Forum + public function getForum(int $fid): array { $dql = 'SELECT t.fid, t.name FROM App\Entity\Forum t WHERE t.fid = :fid'; return $this->createQueryWithSingleParam($dql, 'fid', $fid) diff --git a/be/src/Repository/Post/Content/SubReplyContentRepository.php b/be/src/Repository/Post/Content/SubReplyContentRepository.php index fd120035..68da1bb4 100644 --- a/be/src/Repository/Post/Content/SubReplyContentRepository.php +++ b/be/src/Repository/Post/Content/SubReplyContentRepository.php @@ -21,7 +21,7 @@ protected function getTableNameSuffix(): string { return 'subReply_content'; } - + public function getPostsContent(\ArrayAccess $postsId): array { $dql = 'SELECT t FROM App\Entity\Post\Content\SubReplyContent t WHERE t.spid IN (:spid)'; diff --git a/be/src/Repository/Post/ReplyRepository.php b/be/src/Repository/Post/ReplyRepository.php index 2c288c20..7f9acd48 100644 --- a/be/src/Repository/Post/ReplyRepository.php +++ b/be/src/Repository/Post/ReplyRepository.php @@ -20,13 +20,13 @@ protected function getTableNameSuffix(): string { return 'reply'; } - + public function getPosts(\ArrayAccess $postsId): array { $dql = 'SELECT t FROM App\Entity\Post\Reply t WHERE t.pid IN (:pid)'; return $this->getQueryResultWithSingleParam($dql, 'pid', $postsId); } - + public function isPostExists(int $postId): bool { $dql = 'SELECT 1 FROM App\Entity\Post\Reply t WHERE t.pid = :pid'; diff --git a/be/src/Repository/Post/SubReplyRepository.php b/be/src/Repository/Post/SubReplyRepository.php index ac49a37a..eae8e1a3 100644 --- a/be/src/Repository/Post/SubReplyRepository.php +++ b/be/src/Repository/Post/SubReplyRepository.php @@ -20,7 +20,7 @@ protected function getTableNameSuffix(): string { return 'subReply'; } - + public function getPosts(\ArrayAccess $postsId): array { $dql = 'SELECT t FROM App\Entity\Post\SubReply t WHERE t.spid IN (:spid)'; diff --git a/be/src/Repository/UserRepository.php b/be/src/Repository/UserRepository.php index 47f34914..1efcb52a 100644 --- a/be/src/Repository/UserRepository.php +++ b/be/src/Repository/UserRepository.php @@ -12,7 +12,7 @@ public function __construct(ManagerRegistry $registry) { parent::__construct($registry, User::class); } - + public function getUsers(\ArrayAccess $usersId): array { $dql = 'SELECT t FROM App\Entity\User t WHERE t.uid IN (:usersId)'; diff --git a/be/src/Validator/DateTimeRangeValidator.php b/be/src/Validator/DateTimeRangeValidator.php index 567e83e5..e1f5162f 100644 --- a/be/src/Validator/DateTimeRangeValidator.php +++ b/be/src/Validator/DateTimeRangeValidator.php @@ -18,7 +18,7 @@ public function validate(mixed $value, Constraint $constraint): void return; } - $values = array_map(fn(string $value) => new \DateTimeImmutable($value), explode(',', $value)); + $values = array_map(static fn(string $value) => new \DateTimeImmutable($value), explode(',', $value)); $errors = $this->context->getValidator()->validate($values, new Assert\Count(2)); $errors->addAll($this->context->getValidator()->validate( $values[0],