getController()->registerRoutes(); }); // Registrar enqueue de assets $this->getEnqueuer()->register(); } /** * Obtiene el checker de visibilidad (lazy initialization). */ public function getVisibilityChecker(): AdsenseVisibilityCheckerInterface { if ($this->visibilityChecker === null) { $this->visibilityChecker = new AdsenseVisibilityChecker( $this->container->getComponentSettingsRepository() ); } return $this->visibilityChecker; } /** * Obtiene el use case (lazy initialization). */ public function getUseCase(): CheckAdsenseVisibilityUseCase { if ($this->useCase === null) { $this->useCase = new CheckAdsenseVisibilityUseCase( $this->getVisibilityChecker() ); } return $this->useCase; } /** * Obtiene el controller REST (lazy initialization). */ public function getController(): AdsenseVisibilityController { if ($this->controller === null) { $this->controller = new AdsenseVisibilityController( $this->getUseCase() ); } return $this->controller; } /** * Obtiene el enqueuer de assets (lazy initialization). */ public function getEnqueuer(): AdsenseAssetsEnqueuer { if ($this->enqueuer === null) { $this->enqueuer = new AdsenseAssetsEnqueuer( $this->container->getComponentSettingsRepository() ); } return $this->enqueuer; } }