diff --git a/blog-api/composer.json b/blog-api/composer.json index 3eacedb2..e27fe526 100644 --- a/blog-api/composer.json +++ b/blog-api/composer.json @@ -27,6 +27,7 @@ "cycle/entity-behavior": "^1.0", "cycle/orm": "^2.0", "doctrine/collections": "^2.0", + "friendsofphp/proxy-manager-lts": "^1.0", "httpsoft/http-message": "^1.1", "myclabs/php-enum": "^1.7", "psr/container": "^1.0|^2.0", @@ -43,8 +44,8 @@ "yiisoft/config": "^1.0", "yiisoft/data": "^1.0", "yiisoft/data-response": "^2.0", - "yiisoft/definitions": "^3.0", - "yiisoft/di": "^1.0", + "yiisoft/definitions": "dev-lazy-definition as 3.0.1", + "yiisoft/di": "dev-lazy-services as 1.2.0", "yiisoft/error-handler": "^3.0", "yiisoft/factory": "^1.0", "yiisoft/files": "^2.0", diff --git a/blog-api/config/web/di/application.php b/blog-api/config/web/di/application.php index 709f69e3..7163720e 100644 --- a/blog-api/config/web/di/application.php +++ b/blog-api/config/web/di/application.php @@ -11,6 +11,9 @@ /** @var array $params */ return [ + \App\VersionProvider::class => [ + 'lazy' => true, + ], Yiisoft\Yii\Http\Application::class => [ '__construct()' => [ 'dispatcher' => DynamicReference::to(static function (Injector $injector) use ($params) { diff --git a/blog-api/src/InfoController.php b/blog-api/src/InfoController.php index 3ce6fafb..1dae5408 100644 --- a/blog-api/src/InfoController.php +++ b/blog-api/src/InfoController.php @@ -55,6 +55,10 @@ public function __construct(private VersionProvider $versionProvider) */ public function index(DataResponseFactoryInterface $responseFactory): ResponseInterface { - return $responseFactory->createResponse(['version' => $this->versionProvider->version, 'author' => 'yiisoft']); + return $responseFactory->createResponse([ + 'version' => $this->versionProvider->version, + 'lazy' => $this->versionProvider instanceof \ProxyManager\Proxy\LazyLoadingInterface, + 'author' => 'yiisoft', + ]); } } diff --git a/blog-api/tests/Acceptance/SiteCest.php b/blog-api/tests/Acceptance/SiteCest.php index 0c704116..529c2d3d 100644 --- a/blog-api/tests/Acceptance/SiteCest.php +++ b/blog-api/tests/Acceptance/SiteCest.php @@ -21,6 +21,7 @@ public function getHome(AcceptanceTester $I): void 'error_code' => null, 'data' => [ 'version' => '3.0', + 'lazy' => true, 'author' => 'yiisoft', ], ] diff --git a/blog-api/tests/Functional/IndexControllerTest.php b/blog-api/tests/Functional/IndexControllerTest.php index 781f79ec..1b9abd4e 100644 --- a/blog-api/tests/Functional/IndexControllerTest.php +++ b/blog-api/tests/Functional/IndexControllerTest.php @@ -30,7 +30,11 @@ public function testGetIndex(): void 'status' => 'success', 'error_message' => '', 'error_code' => null, - 'data' => ['version' => '3.0', 'author' => 'yiisoft'], + 'data' => [ + 'version' => '3.0', + 'author' => 'yiisoft', + 'lazy' => true, + ], ], $response->getContentAsJson() ); @@ -52,7 +56,11 @@ public function testGetIndexMockVersion(): void 'status' => 'success', 'error_message' => '', 'error_code' => null, - 'data' => ['version' => '3.0.0', 'author' => 'yiisoft'], + 'data' => [ + 'version' => '3.0.0', + 'author' => 'yiisoft', + 'lazy' => false, + ], ], $response->getContentAsJson() );