From 4ab723994d0c596ea7d793a96449cedef11e42eb Mon Sep 17 00:00:00 2001 From: Akihito Koriyama Date: Thu, 18 Mar 2021 00:45:27 +0900 Subject: [PATCH 1/2] Do not override AppMetaModule @link https://github.com/bearsunday/BEAR.Package/issues/363 --- src/Module.php | 2 +- tests/InjectorTest.php | 8 ++++---- tests/NewAppTest.php | 14 +++++++------- tests/script/boot.php | 3 +-- 4 files changed, 13 insertions(+), 14 deletions(-) diff --git a/src/Module.php b/src/Module.php index 60d94920..333dce51 100644 --- a/src/Module.php +++ b/src/Module.php @@ -31,7 +31,7 @@ public function __invoke(AbstractAppMeta $appMeta, string $context, string $cach $module = $this->installContextModule($appMeta, $contextItem, $module); } - $module->override(new AppMetaModule($appMeta)); + $module->install(new AppMetaModule($appMeta)); $module->override(new CacheNamespaceModule($cacheNamespace)); return $module; diff --git a/tests/InjectorTest.php b/tests/InjectorTest.php index f6f73c3a..04eab1ca 100644 --- a/tests/InjectorTest.php +++ b/tests/InjectorTest.php @@ -66,14 +66,14 @@ public function testCachedGetInstance(string $context, int $countOfNew): void App::$counfOfNew = 0; $injector = Injector::getInstance('FakeVendor\HelloWorld', $context, $appDir); $app = $injector->getInstance(AppInterface::class); - assert($app instanceof App); - $this->assertInstanceOf(App::class, $app); + assert($app instanceof AppInterface); + $this->assertInstanceOf(AppInterface::class, $app); $this->assertSame($countOfNew, App::$counfOfNew); // 2nd injector; AppInterface object should be stored as a singleton. $injector = Injector::getInstance('FakeVendor\HelloWorld', $context, $appDir); $app = $injector->getInstance(AppInterface::class); - assert($app instanceof App); - $this->assertInstanceOf(App::class, $app); + assert($app instanceof AppInterface); + $this->assertInstanceOf(AppInterface::class, $app); $this->assertSame($countOfNew, App::$counfOfNew); } diff --git a/tests/NewAppTest.php b/tests/NewAppTest.php index b2cfb55e..6ffbe015 100644 --- a/tests/NewAppTest.php +++ b/tests/NewAppTest.php @@ -4,10 +4,10 @@ namespace BEAR\Package; -use BEAR\AppMeta\AppMeta; +use BEAR\AppMeta\Meta; use BEAR\Package\Context\CliModule; +use BEAR\Package\Module\AppMetaModule; use BEAR\Sunday\Extension\Application\AppInterface; -use FakeVendor\HelloWorld\Module\App; use FakeVendor\HelloWorld\Module\AppModule; use FakeVendor\HelloWorld\Module\ProdModule; use PHPUnit\Framework\TestCase; @@ -18,10 +18,10 @@ class NewAppTest extends TestCase { - public function testGetInstanceByHand(): App + public function testGetInstanceByHand(): AppInterface { - $app = (new Injector(new AppMetaModule(new AppMeta('FakeVendor\HelloWorld'), new ProdModule(new CliModule(new AppModule()))), __DIR__ . '/tmp'))->getInstance(AppInterface::class); - $this->assertInstanceOf(App::class, $app); + $app = (new Injector(new AppMetaModule(new Meta('FakeVendor\HelloWorld'), new ProdModule(new CliModule(new AppModule()))), __DIR__ . '/tmp'))->getInstance(AppInterface::class); + $this->assertInstanceOf(AppInterface::class, $app); return $app; } @@ -29,8 +29,8 @@ public function testGetInstanceByHand(): App /** * @depends testGetInstanceByHand */ - public function testSerializable(App $app): void + public function testSerializable(AppInterface $app): void { - $this->assertInstanceOf(App::class, unserialize(serialize($app))); + $this->assertInstanceOf(AppInterface::class, unserialize(serialize($app))); } } diff --git a/tests/script/boot.php b/tests/script/boot.php index 033941d4..3fb96c71 100644 --- a/tests/script/boot.php +++ b/tests/script/boot.php @@ -5,7 +5,6 @@ use BEAR\Package\Injector; use BEAR\Resource\ResourceObject; use BEAR\Sunday\Extension\Application\AppInterface; -use FakeVendor\HelloWorld\Module\App; require dirname(__DIR__, 2) . '/vendor/autoload.php'; //require __DIR__ . '/benchmark.php'; @@ -15,7 +14,7 @@ $appDir = dirname(__DIR__) . '/Fake/fake-app'; $injector = Injector::getInstance('FakeVendor\HelloWorld', $context, $appDir); $app = $injector->getInstance(AppInterface::class); -assert($app instanceof App); +assert($app instanceof AppInterface); $ro = $app->resource->get('/'); exit((int) ! ($ro instanceof ResourceObject)); From b0302e3af1eb73b38c725dae7dfdbce4b2e24292 Mon Sep 17 00:00:00 2001 From: Akihito Koriyama Date: Thu, 18 Mar 2021 00:50:20 +0900 Subject: [PATCH 2/2] Update composer.json --- composer.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/composer.json b/composer.json index f13c03a1..f2240baf 100644 --- a/composer.json +++ b/composer.json @@ -17,12 +17,12 @@ "aura/cli": "^2.2", "bear/app-meta": "^1.6.2", "bear/query-repository": "^1.6.10", - "bear/resource": "^1.15.3", + "bear/resource": "^1.15.4", "bear/streamer": "^1.2.2", - "bear/sunday": "^1.5.3", + "bear/sunday": "^1.5.4", "monolog/monolog": "^1.25 || ^2.0", "ray/aop": "^2.10", - "ray/di": "^2.11.1", + "ray/di": "^2.12", "ray/object-visual-grapher": "^1.0", "psr/log": "^1.1", "doctrine/cache": "^1.10",