From 98b58704fb5920ecd2feabbaae92c829ddd50fe1 Mon Sep 17 00:00:00 2001 From: Vinson Liao Date: Thu, 21 Oct 2021 11:09:42 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=9C=8D=E5=8B=99?= =?UTF-8?q?=E5=AE=B9=E5=99=A8=E7=9A=84=E5=8F=96=E5=BE=97=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Concerns/HasValidations.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Concerns/HasValidations.php b/src/Concerns/HasValidations.php index c994add..2a27a93 100644 --- a/src/Concerns/HasValidations.php +++ b/src/Concerns/HasValidations.php @@ -2,6 +2,7 @@ namespace A2Workspace\ModelBuilder\Concerns; +use Illuminate\Container\Container; use Illuminate\Contracts\Validation\Factory; use Illuminate\Validation\ValidationException; use A2Workspace\ModelBuilder\Exceptions\ValidationException as BuilderValidationException; @@ -103,6 +104,6 @@ public function customAttributes(): array */ protected function getValidationFactory() { - return app(Factory::class); + return Container::getInstance()->make(Factory::class); } } From d6ca0bf78417f370a4f5c1655f588cc44ca8705a Mon Sep 17 00:00:00 2001 From: Vinson Liao Date: Thu, 21 Oct 2021 11:38:02 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20ModelBuilder=20?= =?UTF-8?q?=E5=90=8D=E7=A8=B1=E8=A7=A3=E6=9E=90=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Concerns/ResolvesBuilderNames.php | 72 +++++++++++++++++++++++++ src/HasModelBuilder.php | 2 +- src/ModelBuilder.php | 3 +- tests/Unit/ResolvesBuilderNamesTest.php | 36 +++++++++++++ 4 files changed, 111 insertions(+), 2 deletions(-) create mode 100644 src/Concerns/ResolvesBuilderNames.php create mode 100644 tests/Unit/ResolvesBuilderNamesTest.php diff --git a/src/Concerns/ResolvesBuilderNames.php b/src/Concerns/ResolvesBuilderNames.php new file mode 100644 index 0000000..0f55325 --- /dev/null +++ b/src/Concerns/ResolvesBuilderNames.php @@ -0,0 +1,72 @@ +fill($attributes); diff --git a/src/ModelBuilder.php b/src/ModelBuilder.php index fd9160e..35e97ff 100644 --- a/src/ModelBuilder.php +++ b/src/ModelBuilder.php @@ -23,7 +23,8 @@ abstract class ModelBuilder { use Concerns\HasAttributes, Concerns\HasSubtasks, - Concerns\HasValidations; + Concerns\HasValidations, + Concerns\ResolvesBuilderNames; /** * 呼叫生成器創見後的產物集合。 diff --git a/tests/Unit/ResolvesBuilderNamesTest.php b/tests/Unit/ResolvesBuilderNamesTest.php new file mode 100644 index 0000000..f176f37 --- /dev/null +++ b/tests/Unit/ResolvesBuilderNamesTest.php @@ -0,0 +1,36 @@ +assertEquals( + 'App\\ModelBuilders\\PostBuilder', + ModelBuilder::resolveBuilderName('App\\Models\\Post') + ); + + $this->assertEquals( + 'App\\ModelBuilders\\PostBuilder', + ModelBuilder::resolveBuilderName('App\\Post') + ); + + $this->assertEquals( + 'App\\ModelBuilders\\Admin\\PostBuilder', + ModelBuilder::resolveBuilderName('App\\Admin\\Post') + ); + } +} + +// ============================================================================= +// = Stubs +// ============================================================================= + +abstract class ModelBuilder +{ + use ResolvesBuilderNames; +} From 8a49fcd319a0e6cadebd5400ef07e2e20737af9a Mon Sep 17 00:00:00 2001 From: Vinson Liao Date: Thu, 21 Oct 2021 11:47:56 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20HasModelBuilder=20?= =?UTF-8?q?=E5=96=AE=E5=85=83=E6=B8=AC=E8=A9=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/Unit/HasModelBuilderTest.php | 20 +++++++++++++++++++ .../stubs/HasModelBuilderTestBuilderStub.php | 11 ++++++++++ .../stubs/HasModelBuilderTestModelStub.php | 8 ++++++++ 3 files changed, 39 insertions(+) create mode 100644 tests/Unit/HasModelBuilderTest.php create mode 100644 tests/Unit/stubs/HasModelBuilderTestBuilderStub.php create mode 100644 tests/Unit/stubs/HasModelBuilderTestModelStub.php diff --git a/tests/Unit/HasModelBuilderTest.php b/tests/Unit/HasModelBuilderTest.php new file mode 100644 index 0000000..cde54d1 --- /dev/null +++ b/tests/Unit/HasModelBuilderTest.php @@ -0,0 +1,20 @@ +assertInstanceOf(PostBuilder::class, $builder); + } +} diff --git a/tests/Unit/stubs/HasModelBuilderTestBuilderStub.php b/tests/Unit/stubs/HasModelBuilderTestBuilderStub.php new file mode 100644 index 0000000..c990231 --- /dev/null +++ b/tests/Unit/stubs/HasModelBuilderTestBuilderStub.php @@ -0,0 +1,11 @@ +