php, $this->wordpress, $this->wordpressConfig, $this->userHandler, $this->setupHandler ); } public function createBackendAboutController(): AboutController { return new AboutController( $this->php, $this->wordpress, $this->wordpressConfig ); } /** * @template TController of ObjectController * @param class-string $controllerClass * @return TController */ private function createObjectController(string $controllerClass): ObjectController { return new $controllerClass( $this->php, $this->wordpress, $this->wordpressConfig, $this->mainConfig, $this->database, $this->dateUtil, $this->objectHandler, $this->userHandler, $this->userGroupHandler, $this->userGroupAssignmentHandler, $this->accessHandler, $this->objectInformationFactory ); } public function createBackendObjectController(): ObjectController { return $this->createObjectController(ObjectController::class); } public function createBackendCacheController(): CacheController { return new CacheController($this->cache); } public function createBackendPostObjectController(): PostObjectController { return $this->createObjectController(PostObjectController::class); } public function createBackendTermObjectController(): TermObjectController { return $this->createObjectController(TermObjectController::class); } public function createBackendUserObjectController(): UserObjectController { return $this->createObjectController(UserObjectController::class); } public function createBackendDynamicGroupsController(): DynamicGroupsController { return $this->createObjectController(DynamicGroupsController::class); } public function createBackendSettingsController(): SettingsController { return new SettingsController( $this->php, $this->wordpress, $this->wordpressConfig, $this->mainConfig, $this->cache, $this->fileHandler, $this->formFactory, $this->formHelper ); } public function createBackendSetupController(): SetupController { return new SetupController( $this->php, $this->wordpress, $this->wordpressConfig, $this->database, $this->setupHandler ); } public function createBackendUserGroupController(): UserGroupController { return new UserGroupController( $this->php, $this->wordpress, $this->wordpressConfig, $this->userGroupHandler, $this->userGroupFactory, $this->formHelper ); } public function createFrontendController(): FrontendController { return new FrontendController( $this->php, $this->wordpress, $this->wordpressConfig, $this->mainConfig, $this->accessHandler ); } public function createFrontendPostController(): PostController { return new PostController( $this->php, $this->wordpress, $this->wordpressConfig, $this->mainConfig, $this->util, $this->objectHandler, $this->userHandler, $this->userGroupHandler, $this->accessHandler, $this->database ); } public function createFrontendRedirectController(): RedirectController { return new RedirectController( $this->php, $this->wordpress, $this->wordpressConfig, $this->mainConfig, $this->database, $this->util, $this->cache, $this->objectHandler, $this->accessHandler, $this->fileHandler, $this->fileObjectFactory ); } public function createFrontendShortCodeController(): ShortCodeController { return new ShortCodeController( $this->php, $this->wordpress, $this->wordpressConfig, $this->userGroupHandler ); } public function createFrontendTermController(): TermController { return new TermController( $this->php, $this->wordpress, $this->wordpressConfig, $this->mainConfig, $this->util, $this->objectHandler, $this->userHandler, $this->userGroupHandler, $this->accessHandler, $this->objectMapHandler ); } }