HEX
Server: Apache/2
System: Linux nexus-01 4.18.0-553.146.1.el8_10.x86_64 #1 SMP Tue Jul 21 03:06:01 EDT 2026 x86_64
User: aglcoke (1118)
PHP: 8.2.32
Disabled: mail,exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //proc/self/cwd/wp-content/plugins/duplicator-pro/src/Core/REST/RESTManager.php
<?php

/**
 * Singlethon class that manages rest endpoints
 *
 * @package   Duplicator
 * @copyright (c) 2022, Snap Creek LLC
 */

namespace Duplicator\Core\REST;

final class RESTManager
{
    /**
     *
     * @var ?self
     */
    private static $instance;

    /**
     *
     * @return self
     */
    public static function getInstance()
    {
        if (is_null(self::$instance)) {
            self::$instance = new self();
        }

        return self::$instance;
    }

    /**
     * Class constructor
     */
    protected function __construct()
    {
        add_action('rest_api_init', [$this, 'register']);
    }

    /**
     * get rest points list
     *
     * @return AbstractRESTPoint[]
     */
    private function getRestPoints()
    {
        $basicRestPoints   = [];
        $basicRestPoints[] = new \Duplicator\RESTPoints\Versions();
        $basicRestPoints[] = new \Duplicator\RESTPoints\SubsiteActions();

        return array_filter(
            apply_filters(
                'duplicator_endpoints',
                $basicRestPoints
            ),
            fn($restPoint): bool => is_subclass_of($restPoint, AbstractRESTPoint::class)
        );
    }

    /**
     * Register rest points
     *
     * @return void
     */
    public function register()
    {
        foreach ($this->getRestPoints() as $obj) {
            $obj->register();
        }
    }
}