make_proxmox_client(); $expiration_service = new SPP_Expiration_Service($repository, $proxmox); add_action('spp_expire_deployments', [$expiration_service, 'expire_due_deployments']); (new SPP_REST_Controller($repository, $proxmox, $expiration_service))->register_hooks(); (new SPP_Admin_Page())->register_hooks(); (new SPP_Shortcode())->register_hooks(); } private function make_proxmox_client(): SPP_Proxmox_Client { $mode = get_option('spp_proxmox_mode', 'mock'); if ($mode === 'http') { return new SPP_Http_Proxmox_Client([ 'base_url' => (string) get_option('spp_proxmox_base_url', ''), 'token_id' => (string) get_option('spp_proxmox_token_id', ''), 'token_secret' => (string) get_option('spp_proxmox_token_secret', ''), 'node' => (string) get_option('spp_proxmox_node', ''), ]); } return new SPP_Mock_Proxmox_Client(); } }