Search moodle.org's
Developer Documentation

  • Bug fixes for general core bugs in 3.11.x will end 14 Nov 2022 (12 months plus 6 months extension).
  • Bug fixes for security issues in 3.11.x will end 13 Nov 2023 (18 months plus 12 months extension).
  • PHP version: minimum PHP 7.3.0 Note: minimum PHP version has increased since Moodle 3.10. PHP 7.4.x is supported too.
  • Differences Between: [Versions 37 and 311] [Versions 38 and 311]

    (no description)

    Copyright: 2010 onwards Eloy Lafuente (stronk7) {@link http://stronk7.com}
    License: http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
    File Size: 614 lines (25 kb)
    Included or required:0 times
    Referenced: 1 time
    Includes or requires: 0 files

    Defines 2 classes

    restore_controller:: (40 methods):
      __construct()
      destroy()
      finish_ui()
      process_ui_event()
      set_status()
      set_execution()
      calculate_checksum()
      is_checksum_correct()
      get_tempdir()
      get_restoreid()
      get_type()
      get_operation()
      get_courseid()
      get_format()
      get_interactive()
      get_mode()
      get_userid()
      get_target()
      is_samesite()
      get_status()
      get_execution()
      get_executiontime()
      get_plan()
      get_setting_value()
      debug_display_all_settings_values()
      get_info()
      execute_plan()
      is_executing()
      execute_precheck()
      get_results()
      precheck_executed()
      get_precheck_results()
      save_controller()
      load_controller()
      get_tempdir_name()
      convert()
      prepare_copy()
      calculate_restoreid()
      load_plan()
      apply_defaults()

    restore_controller_exception:: (1 method):
      __construct()


    Class: restore_controller  - X-Ref

    Class implementing the controller of any restore process

    This final class is in charge of controlling all the restore architecture, for any
    type of backup.

    TODO: Finish phpdocs
    __construct($tempdir, $courseid, $interactive, $mode, $userid, $target,\core\progress\base $progress = null, $releasesession = backup::RELEASESESSION_NO)   X-Ref
    Constructor.

    If you specify a progress monitor, this will be used to report progress
    while loading the plan, as well as for future use. (You can change it
    for a different one later using set_progress.)

    param: string $tempdir Directory under $CFG->backuptempdir awaiting restore
    param: int $courseid Course id where restore is going to happen
    param: bool $interactive backup::INTERACTIVE_YES[true] or backup::INTERACTIVE_NO[false]
    param: int $mode backup::MODE_[ GENERAL | HUB | IMPORT | SAMESITE ]
    param: int $userid
    param: int $target backup::TARGET_[ NEW_COURSE | CURRENT_ADDING | CURRENT_DELETING | EXISTING_ADDING | EXISTING_DELETING ]
    param: \core\progress\base $progress Optional progress monitor
    param: bool $releasesession Should release the session? backup::RELEASESESSION_YES or backup::RELEASESESSION_NO

    destroy()   X-Ref
    Clean structures used by the restore_controller

    This method clean various structures used by the restore_controller,
    destroying them in an ordered way, so their memory will be gc properly
    by PHP (mainly circular references).

    Note that, while it's not mandatory to execute this method, it's highly
    recommended to do so, specially in scripts performing multiple operations
    (like the automated backups) or the system will run out of memory after
    a few dozens of backups)

    finish_ui()   X-Ref
    No description

    process_ui_event()   X-Ref
    No description

    set_status($status)   X-Ref
    No description

    set_execution($execution, $executiontime = 0)   X-Ref
    No description

    calculate_checksum()   X-Ref
    No description

    is_checksum_correct($checksum)   X-Ref
    No description

    get_tempdir()   X-Ref
    No description

    get_restoreid()   X-Ref
    No description

    get_type()   X-Ref
    No description

    get_operation()   X-Ref
    No description

    get_courseid()   X-Ref
    No description

    get_format()   X-Ref
    No description

    get_interactive()   X-Ref
    No description

    get_mode()   X-Ref
    No description

    get_userid()   X-Ref
    No description

    get_target()   X-Ref
    No description

    is_samesite()   X-Ref
    No description

    get_status()   X-Ref
    No description

    get_execution()   X-Ref
    No description

    get_executiontime()   X-Ref
    No description

    get_plan()   X-Ref
    Returns the restore plan

    return: restore_plan

    get_setting_value($name, $default = false)   X-Ref
    Gets the value for the requested setting

    param: string $name
    param: bool $default
    return: mixed

    debug_display_all_settings_values()   X-Ref
    For debug only. Get a simple test display of all the settings.

    return: string

    get_info()   X-Ref
    No description

    execute_plan()   X-Ref
    No description

    is_executing()   X-Ref
    Checks whether restore is currently executing. Certain parts of code that
    is called during restore, but not directly part of the restore system, may
    need to behave differently during restore (e.g. do not bother resetting a
    cache because we know it will be reset at end of operation).

    return: bool True if any restore is currently executing

    execute_precheck($droptemptablesafter = false)   X-Ref
    Execute the restore prechecks to detect any problem before proceed with restore

    This function checks various parts of the restore (versions, users, roles...)
    returning true if everything was ok or false if any warning/error was detected.
    Any warning/error is returned by the get_precheck_results() method.
    Note: if any problem is found it will, automatically, drop all the restore temp
    tables as far as the next step is to inform about the warning/errors. If no problem
    is found, then default behaviour is to keep the temp tables so, in the same request
    restore will be executed, saving a lot of checks to be executed again.
    Note: If for any reason (UI to show after prechecks...) you want to force temp tables
    to be dropped always, you can pass true to the $droptemptablesafter parameter

    get_results()   X-Ref
    No description

    precheck_executed()   X-Ref
    Returns true if the prechecks have been executed

    return: bool

    get_precheck_results()   X-Ref
    No description

    save_controller($includeobj = true, $cleanobj = false)   X-Ref
    Save controller information

    param: bool $includeobj to decide if the object itself must be updated (true) or no (false)
    param: bool $cleanobj to decide if the object itself must be cleaned (true) or no (false)

    load_controller($restoreid)   X-Ref
    No description

    get_tempdir_name($courseid = 0, $userid = 0)   X-Ref
    class method to provide pseudo random unique "correct" tempdir names


    convert()   X-Ref
    Converts from current format to backup::MOODLE format


    prepare_copy()   X-Ref
    Do the necessary copy preparation actions.
    This method should only be called once the backup of a copy operation is completed.


    calculate_restoreid()   X-Ref
    No description

    load_plan()   X-Ref
    No description

    apply_defaults()   X-Ref
    Apply defaults from the global admin settings


    Class: restore_controller_exception  - X-Ref

    __construct($errorcode, $a=NULL, $debuginfo=null)   X-Ref
    No description