From e9b73bb8b799fb484c20787e3c92058517c8a6eb Mon Sep 17 00:00:00 2001 From: n0099 Date: Sat, 12 Oct 2024 21:40:18 +0000 Subject: [PATCH] * replace all private prop and their getter in readonly DTO classes with public prop @ `App\DTO` - stopwatch with label `initPaginators` as its duration is transient @ `App\PostsQuery\BaseQuery->setResult()` @ be --- be/src/Controller/PostsController.php | 4 ++-- be/src/DTO/User/AuthorExpGrade.php | 24 ++++-------------------- be/src/DTO/User/ForumModerator.php | 24 ++++-------------------- be/src/PostsQuery/BaseQuery.php | 2 -- 4 files changed, 10 insertions(+), 44 deletions(-) diff --git a/be/src/Controller/PostsController.php b/be/src/Controller/PostsController.php index f3db0824..8ebe0a65 100644 --- a/be/src/Controller/PostsController.php +++ b/be/src/Controller/PostsController.php @@ -101,12 +101,12 @@ public function query(Request $request): array $this->stopwatch->start('queryUserRelated'); $fid = $result['fid']; $authorExpGrades = collect($this->authorExpGradeRepository->getLatestOfUsers($fid, $uids)) - ->keyBy(fn(AuthorExpGrade $authorExpGrade) => $authorExpGrade->getUid()); + ->keyBy(fn(AuthorExpGrade $authorExpGrade) => $authorExpGrade->uid); $users->each(fn(User $user) => $user->setCurrentAuthorExpGrade($authorExpGrades[$user->getUid()])); $forumModerators = collect($this->forumModeratorRepository ->getLatestOfUsers($fid, $users->map(fn(User $user) => $user->getPortrait()))) - ->keyBy(fn(ForumModerator $forumModerator) => $forumModerator->getPortrait()); + ->keyBy(fn(ForumModerator $forumModerator) => $forumModerator->portrait); $users->each(fn(User $user) => $user->setCurrentForumModerator($forumModerators->get($user->getPortrait()))); $this->stopwatch->stop('queryUserRelated'); diff --git a/be/src/DTO/User/AuthorExpGrade.php b/be/src/DTO/User/AuthorExpGrade.php index 3d5c4271..8ab1bb29 100644 --- a/be/src/DTO/User/AuthorExpGrade.php +++ b/be/src/DTO/User/AuthorExpGrade.php @@ -9,27 +9,11 @@ readonly class AuthorExpGrade { public function __construct( - #[ORM\Column, ORM\Id] - private int $uid, + #[ORM\Column, ORM\Id, Ignore] + public int $uid, #[ORM\Column] - private int $discoveredAt, + public int $discoveredAt, #[ORM\Column] - private int $authorExpGrade, + public int $authorExpGrade, ) {} - - #[Ignore] - public function getUid(): int - { - return $this->uid; - } - - public function getDiscoveredAt(): int - { - return $this->discoveredAt; - } - - public function getAuthorExpGrade(): int - { - return $this->authorExpGrade; - } } diff --git a/be/src/DTO/User/ForumModerator.php b/be/src/DTO/User/ForumModerator.php index 732c3eea..ebd7c45a 100644 --- a/be/src/DTO/User/ForumModerator.php +++ b/be/src/DTO/User/ForumModerator.php @@ -9,27 +9,11 @@ readonly class ForumModerator { public function __construct( - #[ORM\Column, ORM\Id] - private string $portrait, + #[ORM\Column, ORM\Id, Ignore] + public string $portrait, #[ORM\Column] - private int $discoveredAt, + public int $discoveredAt, #[ORM\Column] - private string $moderatorTypes, + public string $moderatorTypes, ) {} - - #[Ignore] - public function getPortrait(): string - { - return $this->portrait; - } - - public function getDiscoveredAt(): int - { - return $this->discoveredAt; - } - - public function getModeratorTypes(): string - { - return $this->moderatorTypes; - } } diff --git a/be/src/PostsQuery/BaseQuery.php b/be/src/PostsQuery/BaseQuery.php index 2ba7a15b..b938bd45 100644 --- a/be/src/PostsQuery/BaseQuery.php +++ b/be/src/PostsQuery/BaseQuery.php @@ -82,7 +82,6 @@ protected function setResult( // remove queries for post types with encoded cursor ',,' $orderedQueries = $orderedQueries->intersectByKeys($cursorsKeyByPostType); } - $this->stopwatch->start('initPaginators'); /** @var Collection $paginators key by post type */ $paginators = $orderedQueries->each(function (QueryBuilder $qb, string $type) use ($cursorsKeyByPostType) { $cursors = $cursorsKeyByPostType?->get($type); @@ -99,7 +98,6 @@ protected function setResult( $cursors->mapWithKeys(fn($fieldValue, string $fieldName) => $qb->setParameter("cursor_$fieldName", $fieldValue)); // prevent overwriting existing param }); - $this->stopwatch->stop('initPaginators'); $resultsAndHasMorePages = $paginators->map(fn(QueryBuilder $paginator) => self::hasQueryResultMorePages($paginator, $this->perPageItems));