From f3643292974a44102bdb565844aafbf041516a33 Mon Sep 17 00:00:00 2001 From: pascalboucher Date: Sun, 6 Oct 2019 16:32:45 +0000 Subject: [PATCH 1/2] Changed collection to LazyCollection --- src/Contracts/Models/Rankings/RankerContract.php | 7 +++---- src/Contracts/Repositories/NodeRepositoryContract.php | 6 +++--- src/Contracts/Traits/Nodes/HasNodesContract.php | 6 +++--- src/Contracts/Traits/Nodes/HasOptionsContract.php | 6 +++--- src/Models/Rankings/Ranker.php | 7 +++---- src/Repositories/NodeRepository.php | 8 ++++---- src/Traits/Nodes/HasNodes.php | 6 +++--- src/Traits/Nodes/HasOptions.php | 6 +++--- 8 files changed, 25 insertions(+), 27 deletions(-) diff --git a/src/Contracts/Models/Rankings/RankerContract.php b/src/Contracts/Models/Rankings/RankerContract.php index 7dd12bf..4ebab73 100644 --- a/src/Contracts/Models/Rankings/RankerContract.php +++ b/src/Contracts/Models/Rankings/RankerContract.php @@ -2,7 +2,6 @@ namespace Belvedere\FormMaker\Contracts\Models\Rankings; -use Illuminate\Support\Collection; use Illuminate\Database\Eloquent\Relations\MorphOne; interface RankerContract @@ -119,10 +118,10 @@ public function shuffle(): void; /** * Order the list according to the items position in the ranking. * - * @param \Illuminate\Support\Collection $nodes - * @return \Illuminate\Support\Collection + * @param \Illuminate\Support\LazyCollection|\Illuminate\Support\Collection $nodes + * @return mixed */ - public function sortByRank(Collection $nodes); + public function sortByRank($nodes); /** * Toggle two nodes in the ranking. diff --git a/src/Contracts/Repositories/NodeRepositoryContract.php b/src/Contracts/Repositories/NodeRepositoryContract.php index d3d6a37..027ff56 100644 --- a/src/Contracts/Repositories/NodeRepositoryContract.php +++ b/src/Contracts/Repositories/NodeRepositoryContract.php @@ -2,9 +2,9 @@ namespace Belvedere\FormMaker\Contracts\Repositories; -use Illuminate\Support\Collection; use Belvedere\FormMaker\Models\Model; use Belvedere\FormMaker\Models\Nodes\Node; +use Illuminate\Support\LazyCollection; interface NodeRepositoryContract { @@ -13,9 +13,9 @@ interface NodeRepositoryContract * * @param \Belvedere\FormMaker\Models\Model $parent * @param string|null $type - * @return \Illuminate\Support\Collection + * @return \Illuminate\Support\LazyCollection */ - public function all(Model $parent, ?string $type = null): Collection; + public function all(Model $parent, ?string $type = null): LazyCollection; /** * Add a node to the parent model. diff --git a/src/Contracts/Traits/Nodes/HasNodesContract.php b/src/Contracts/Traits/Nodes/HasNodesContract.php index ea0c4c0..ef7ea7c 100644 --- a/src/Contracts/Traits/Nodes/HasNodesContract.php +++ b/src/Contracts/Traits/Nodes/HasNodesContract.php @@ -2,9 +2,9 @@ namespace Belvedere\FormMaker\Contracts\Traits\Nodes; -use Illuminate\Support\Collection; use Belvedere\FormMaker\Models\Nodes\Node; use Belvedere\FormMaker\Contracts\Traits\Rankings\HasRankingsContract; +use Illuminate\Support\LazyCollection; interface HasNodesContract extends HasRankingsContract { @@ -59,7 +59,7 @@ public function node($key): ?Node; * Get the nodes filtered by type or not and sorted by their position in the ranking. * * @param string|null $type - * @return \Illuminate\Support\Collection + * @return \Illuminate\Support\LazyCollection */ - public function nodes(?string $type = null): Collection; + public function nodes(?string $type = null): LazyCollection; } diff --git a/src/Contracts/Traits/Nodes/HasOptionsContract.php b/src/Contracts/Traits/Nodes/HasOptionsContract.php index 70e8ae1..2cb5020 100644 --- a/src/Contracts/Traits/Nodes/HasOptionsContract.php +++ b/src/Contracts/Traits/Nodes/HasOptionsContract.php @@ -2,9 +2,9 @@ namespace Belvedere\FormMaker\Contracts\Traits\Nodes; -use Illuminate\Support\Collection; use Belvedere\FormMaker\Contracts\Traits\Rankings\HasRankingsContract; use Belvedere\FormMaker\Contracts\Models\Nodes\Inputs\Option\OptionerContract; +use Illuminate\Support\LazyCollection; interface HasOptionsContract extends HasRankingsContract { @@ -35,7 +35,7 @@ public function option($key): ?OptionerContract; /** * Get the options sorted by their position in the ranking. * - * @return \Illuminate\Support\Collection + * @return \Illuminate\Support\LazyCollection */ - public function options(): Collection; + public function options(): LazyCollection; } diff --git a/src/Models/Rankings/Ranker.php b/src/Models/Rankings/Ranker.php index 39238ff..a1b6358 100644 --- a/src/Models/Rankings/Ranker.php +++ b/src/Models/Rankings/Ranker.php @@ -2,7 +2,6 @@ namespace Belvedere\FormMaker\Models\Rankings; -use Illuminate\Support\Collection; use Illuminate\Database\Eloquent\Model as Eloquent; use Illuminate\Database\Eloquent\Relations\MorphOne; use Belvedere\FormMaker\Contracts\Models\Rankings\RankerContract; @@ -358,10 +357,10 @@ public function shuffle(): void /** * Order the list according to the nodes position in the ranking. * - * @param \Illuminate\Support\Collection $nodes - * @return \Illuminate\Support\Collection + * @param \Illuminate\Support\LazyCollection|\Illuminate\Support\Collection $nodes + * @return mixed */ - public function sortByRank(Collection $nodes) + public function sortByRank($nodes) { return $nodes->sortBy(function ($node, $key) { return $this->rank($node); diff --git a/src/Repositories/NodeRepository.php b/src/Repositories/NodeRepository.php index 1c3c3f3..21b011e 100644 --- a/src/Repositories/NodeRepository.php +++ b/src/Repositories/NodeRepository.php @@ -2,11 +2,11 @@ namespace Belvedere\FormMaker\Repositories; -use Illuminate\Support\Collection; use Illuminate\Support\Facades\DB; use Belvedere\FormMaker\Models\Model; use Belvedere\FormMaker\Models\Nodes\Node; use Belvedere\FormMaker\Contracts\Repositories\NodeRepositoryContract; +use Illuminate\Support\LazyCollection; class NodeRepository implements NodeRepositoryContract { @@ -48,9 +48,9 @@ class NodeRepository implements NodeRepositoryContract * * @param \Belvedere\FormMaker\Models\Model $parent * @param string|null $type - * @return \Illuminate\Support\Collection + * @return \Illuminate\Support\LazyCollection */ - public function all(Model $parent, ?string $type = null): Collection + public function all(Model $parent, ?string $type = null): LazyCollection { $query = DB::table(config('form-maker.database.form_nodes_table', 'form_nodes')) ->where('nodable_type', $parent->getMorphClass()) @@ -63,7 +63,7 @@ public function all(Model $parent, ?string $type = null): Collection $query->where('type', $type); } - return $query->get()->groupBy('type')->map(function ($nodes, $key) { + return $query->cursor()->groupBy('type')->map(function ($nodes, $key) { return $this->resolve($nodes[0]->type)::hydrate($nodes->toArray()); })->flatten(1); } diff --git a/src/Traits/Nodes/HasNodes.php b/src/Traits/Nodes/HasNodes.php index 6bb2e2a..8e08b0f 100644 --- a/src/Traits/Nodes/HasNodes.php +++ b/src/Traits/Nodes/HasNodes.php @@ -2,9 +2,9 @@ namespace Belvedere\FormMaker\Traits\Nodes; -use Illuminate\Support\Collection; use Belvedere\FormMaker\Models\Nodes\Node; use Belvedere\FormMaker\Contracts\Repositories\NodeRepositoryContract; +use Illuminate\Support\LazyCollection; trait HasNodes { @@ -102,9 +102,9 @@ public function node($key): ?Node * Get the nodes filtered by type or not and sorted by their position in the ranking. * * @param string|null $type - * @return \Illuminate\Support\Collection + * @return \Illuminate\Support\LazyCollection */ - public function nodes(?string $type = null): Collection + public function nodes(?string $type = null): LazyCollection { $nodeRepository = resolve(NodeRepositoryContract::class); diff --git a/src/Traits/Nodes/HasOptions.php b/src/Traits/Nodes/HasOptions.php index cc8cd86..92ce2b4 100644 --- a/src/Traits/Nodes/HasOptions.php +++ b/src/Traits/Nodes/HasOptions.php @@ -2,9 +2,9 @@ namespace Belvedere\FormMaker\Traits\Nodes; -use Illuminate\Support\Collection; use Belvedere\FormMaker\Contracts\Repositories\NodeRepositoryContract; use Belvedere\FormMaker\Contracts\Models\Nodes\Inputs\Option\OptionerContract; +use Illuminate\Support\LazyCollection; trait HasOptions { @@ -64,9 +64,9 @@ public function option($key): ?OptionerContract /** * Get the options sorted by their position in the ranking. * - * @return \Illuminate\Support\Collection + * @return \Illuminate\Support\LazyCollection */ - public function options(): Collection + public function options(): LazyCollection { $nodeRepository = resolve(NodeRepositoryContract::class); From 8233c676d2e024715e448ebcaf8d969d2349df01 Mon Sep 17 00:00:00 2001 From: Pascal Boucher Date: Sun, 6 Oct 2019 12:38:46 -0400 Subject: [PATCH 2/2] Apply fixes from StyleCI (#15) --- src/Contracts/Repositories/NodeRepositoryContract.php | 2 +- src/Contracts/Traits/Nodes/HasNodesContract.php | 2 +- src/Contracts/Traits/Nodes/HasOptionsContract.php | 2 +- src/Repositories/NodeRepository.php | 2 +- src/Traits/Nodes/HasNodes.php | 2 +- src/Traits/Nodes/HasOptions.php | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Contracts/Repositories/NodeRepositoryContract.php b/src/Contracts/Repositories/NodeRepositoryContract.php index 027ff56..5311fe2 100644 --- a/src/Contracts/Repositories/NodeRepositoryContract.php +++ b/src/Contracts/Repositories/NodeRepositoryContract.php @@ -3,8 +3,8 @@ namespace Belvedere\FormMaker\Contracts\Repositories; use Belvedere\FormMaker\Models\Model; -use Belvedere\FormMaker\Models\Nodes\Node; use Illuminate\Support\LazyCollection; +use Belvedere\FormMaker\Models\Nodes\Node; interface NodeRepositoryContract { diff --git a/src/Contracts/Traits/Nodes/HasNodesContract.php b/src/Contracts/Traits/Nodes/HasNodesContract.php index ef7ea7c..a2b173b 100644 --- a/src/Contracts/Traits/Nodes/HasNodesContract.php +++ b/src/Contracts/Traits/Nodes/HasNodesContract.php @@ -2,9 +2,9 @@ namespace Belvedere\FormMaker\Contracts\Traits\Nodes; +use Illuminate\Support\LazyCollection; use Belvedere\FormMaker\Models\Nodes\Node; use Belvedere\FormMaker\Contracts\Traits\Rankings\HasRankingsContract; -use Illuminate\Support\LazyCollection; interface HasNodesContract extends HasRankingsContract { diff --git a/src/Contracts/Traits/Nodes/HasOptionsContract.php b/src/Contracts/Traits/Nodes/HasOptionsContract.php index 2cb5020..90dde54 100644 --- a/src/Contracts/Traits/Nodes/HasOptionsContract.php +++ b/src/Contracts/Traits/Nodes/HasOptionsContract.php @@ -2,9 +2,9 @@ namespace Belvedere\FormMaker\Contracts\Traits\Nodes; +use Illuminate\Support\LazyCollection; use Belvedere\FormMaker\Contracts\Traits\Rankings\HasRankingsContract; use Belvedere\FormMaker\Contracts\Models\Nodes\Inputs\Option\OptionerContract; -use Illuminate\Support\LazyCollection; interface HasOptionsContract extends HasRankingsContract { diff --git a/src/Repositories/NodeRepository.php b/src/Repositories/NodeRepository.php index 21b011e..3a98922 100644 --- a/src/Repositories/NodeRepository.php +++ b/src/Repositories/NodeRepository.php @@ -4,9 +4,9 @@ use Illuminate\Support\Facades\DB; use Belvedere\FormMaker\Models\Model; +use Illuminate\Support\LazyCollection; use Belvedere\FormMaker\Models\Nodes\Node; use Belvedere\FormMaker\Contracts\Repositories\NodeRepositoryContract; -use Illuminate\Support\LazyCollection; class NodeRepository implements NodeRepositoryContract { diff --git a/src/Traits/Nodes/HasNodes.php b/src/Traits/Nodes/HasNodes.php index 8e08b0f..d95a0f0 100644 --- a/src/Traits/Nodes/HasNodes.php +++ b/src/Traits/Nodes/HasNodes.php @@ -2,9 +2,9 @@ namespace Belvedere\FormMaker\Traits\Nodes; +use Illuminate\Support\LazyCollection; use Belvedere\FormMaker\Models\Nodes\Node; use Belvedere\FormMaker\Contracts\Repositories\NodeRepositoryContract; -use Illuminate\Support\LazyCollection; trait HasNodes { diff --git a/src/Traits/Nodes/HasOptions.php b/src/Traits/Nodes/HasOptions.php index 92ce2b4..5afae89 100644 --- a/src/Traits/Nodes/HasOptions.php +++ b/src/Traits/Nodes/HasOptions.php @@ -2,9 +2,9 @@ namespace Belvedere\FormMaker\Traits\Nodes; +use Illuminate\Support\LazyCollection; use Belvedere\FormMaker\Contracts\Repositories\NodeRepositoryContract; use Belvedere\FormMaker\Contracts\Models\Nodes\Inputs\Option\OptionerContract; -use Illuminate\Support\LazyCollection; trait HasOptions {