|
| __construct ($type, $id, $format, $interactive, $mode, $userid, $releasesession=backup::RELEASESESSION_NO) |
| Constructor for the backup controller class.
|
|
| add_logger (base_logger $logger) |
| Inserts a new logger at end of logging chain.
|
|
| calculate_checksum () |
| This function will return one unique and stable checksum for one instance of the class implementing it.
|
|
| debug_display_all_settings_values () |
| For debug only.
|
|
| destroy () |
| Clean structures used by the backup_controller.
|
|
| execute_plan () |
| Executes the backup.
|
|
| finish_ui () |
| Declare that all user interaction with the backup controller is complete.
|
|
| get_backupid () |
| Gets the unique identifier for this backup controller.
|
|
| get_copy () |
| Get the course copy data.
|
|
| get_courseid () |
| Gets the course that the item being backed up is in.
|
|
| get_execution () |
| Get if the backup will be executed immediately, or later.
|
|
| get_executiontime () |
| Get when the backup will be executed.
|
|
| get_format () |
| Gets the format the backup is stored in.
|
|
| get_id () |
| Gets the instance id of the item being backed up.
|
|
| get_include_files () |
| Returns the current value of the include_files setting.
|
|
| get_interactive () |
| Gets if user interaction is expected during the backup.
|
|
| get_logger () |
| Gets first logger in logging chain.
|
|
| get_mode () |
| Gets the mode that the backup will be performed in.
|
|
| get_operation () |
| Gets if this is a backup or restore.
|
|
| get_plan () |
| Gets the plan that will be run during the backup.
|
|
| get_progress () |
| Gets the progress reporter, which can be used to report progress within the backup or restore process.
|
|
| get_releasesession () |
| Returns the set value of releasesession.
|
|
| get_results () |
| Gets the results of the plan execution for this backup.
|
|
| get_status () |
| Get the current status of the backup.
|
|
| get_type () |
| Gets the type of backup to be performed.
|
|
| get_userid () |
| Get the id of the user who started the backup.
|
|
| is_checksum_correct ($checksum) |
| Given one checksum, returns if matches object's checksum (true) or no (false)
|
|
| log ($message, $level, $a=null, $depth=null, $display=false) |
| Logs data to the logger chain.
|
|
| process_ui_event () |
| Validates the backup is valid after any user changes.
|
|
| save_controller ($includeobj=true, $cleanobj=false) |
| Save controller information.
|
|
| set_copy (\stdClass $data) |
| Store extra data for course copy operations.
|
|
| set_execution ($execution, $executiontime=0) |
| Sets if the backup will be processed immediately, or later.
|
|
| set_kept_roles (array $roleids) |
| Sets the user roles that should be kept in the destination course for a course copy operation.
|
|
| set_progress (\core\progress\base $progress) |
| Sets the progress reporter.
|
|
| set_status ($status) |
| Sets the new status of the backup.
|
|
|
const | CIPHER = 'aes-256-cbc' |
| Cipher to be used in backup and restore operations.
|
|
const | CIPHERKEYLEN = 32 |
| Bytes enforced for key, using the cypher above.
|
|
const | ENROL_ALWAYS = 2 |
|
const | ENROL_NEVER = 0 |
|
const | ENROL_WITHUSERS = 1 |
|
const | EXECUTION_DELAYED = 2 |
|
const | EXECUTION_INMEDIATE = 1 |
|
const | FORMAT_IMSCC1 = 'imscc1' |
|
const | FORMAT_IMSCC11 = 'imscc11' |
|
const | FORMAT_MOODLE = 'moodle2' |
|
const | FORMAT_MOODLE1 = 'moodle1' |
|
const | FORMAT_UNKNOWN = 'unknown' |
|
const | INTERACTIVE_NO = false |
|
const | INTERACTIVE_YES = true |
|
const | LOG_DEBUG = 50 |
|
const | LOG_ERROR = 20 |
|
const | LOG_INFO = 40 |
|
const | LOG_NONE = 10 |
|
const | LOG_WARNING = 30 |
|
const | MODE_ASYNC = 70 |
| This mode is for asynchronous backups.
|
|
const | MODE_AUTOMATED = 50 |
|
const | MODE_CONVERTED = 60 |
|
const | MODE_COPY = 80 |
| This mode is for course copies.
|
|
const | MODE_GENERAL = 10 |
|
const | MODE_HUB = 30 |
|
const | MODE_IMPORT = 20 |
| This is used for importing courses, and for duplicating activities.
|
|
const | MODE_SAMESITE = 40 |
| This mode is intended for duplicating courses and cases where the backup target is within the same site.
|
|
const | OPERATION_BACKUP ='backup' |
|
const | OPERATION_RESTORE ='restore' |
|
const | RELEASE = '4.3' |
| Usually same than major release zero version, mainly for informative/historic purposes.
|
|
const | RELEASESESSION_NO = false |
| Don't release the session during backup/restore.
|
|
const | RELEASESESSION_YES = true |
| Release the session during backup/restore.
|
|
const | STATUS_AWAITING = 700 |
|
const | STATUS_CONFIGURED = 400 |
|
const | STATUS_CREATED = 100 |
|
const | STATUS_EXECUTING = 800 |
|
const | STATUS_FINISHED_ERR = 900 |
|
const | STATUS_FINISHED_OK =1000 |
|
const | STATUS_NEED_PRECHECK =600 |
|
const | STATUS_PLANNED = 300 |
|
const | STATUS_REQUIRE_CONV = 200 |
|
const | STATUS_SETTING_UI = 500 |
|
const | TARGET_CURRENT_ADDING = 1 |
|
const | TARGET_CURRENT_DELETING = 0 |
|
const | TARGET_EXISTING_ADDING = 4 |
|
const | TARGET_EXISTING_DELETING = 3 |
|
const | TARGET_NEW_COURSE = 2 |
|
const | TYPE_1ACTIVITY = 'activity' |
|
const | TYPE_1COURSE = 'course' |
|
const | TYPE_1SECTION = 'section' |
|
const | VAR_ACTIVITYID = -21 |
|
const | VAR_BACKUPID = -1001 |
|
const | VAR_BASEPATH = -1011 |
|
const | VAR_BLOCKID = -51 |
|
const | VAR_BLOCKNAME = -61 |
|
const | VAR_CONTEXTID = -71 |
|
const | VAR_COURSEID = -1 |
|
const | VAR_MODID = -31 |
|
const | VAR_MODNAME = -41 |
|
const | VAR_PARENTID = -81 |
|
const | VAR_SECTIONID = -11 |
|
const | VERSION = 2023100900 |
| Usually same than major release version, this is used to mark important point is backup when some behavior/approach channged, in order to allow conditional coding based on it.
|
|
|
string | $backupid |
| Unique identifier for this backup.
|
|
string | $checksum |
| Cache {.
|
|
stdClass | $copy |
| Holds the relevant destination information for course copy operations.
|
|
false int | $courseid |
| The id of the course the backup belongs to, or false if no course.
|
|
null | $destination |
| Destination chain object (fs_moodle, fs_os, db, email...).
|
|
int | $execution |
| Immediate/delayed execution type.
|
|
int | $executiontime |
| Epoch time when we want the backup to be executed (requires cron to run).
|
|
string | $format |
| Format of backup (moodle, imscc).
|
|
int | $id |
| Course/section/course_module id to backup.
|
|
int | $includefiles |
| Whether this backup includes files (1) or not (0).
|
|
bool | $interactive |
| Whether this backup will require user interaction.
|
|
array | $keptroles = array() |
| The role ids to keep in a copy operation.
|
|
base_logger | $logger |
| Logging chain object (moodle, inline, fs, db, syslog)
|
|
int | $mode |
| Purpose of the backup (default settings)
|
|
string | $operation |
| Type of operation (backup/restore)
|
|
backup_plan | $plan |
| Backup execution plan.
|
|
core progress base | $progress |
| Progress reporting object.
|
|
bool | $releasesession = backup::RELEASESESSION_NO |
| Whether this backup should release the session.
|
|
int | $status |
| Current status of the controller (created, planned, configured...)
|
|
string | $type |
| Type of item that is being stored in the backup.
|
|
int | $userid |
| The id of the user executing the backup.
|
|
Backup controller and related exception classes.
- Copyright
- 2010 onwards Eloy Lafuente (stronk7)
- License
- http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later Class implementing the controller of any backup process
This final class is in charge of controlling all the backup architecture, for any type of backup. Based in type, format, interactivity and target, it stores the whole execution plan and settings that will be used later by the @backup_worker, applies all the defaults, performs all the security contraints and is in charge of handling the ui if necessary. Also logging strategy is defined here.
Note the class is 100% neutral and usable for any backup. It just stores/requests all the needed information from other backup classes in order to have everything well structured in order to allow the @backup_worker classes to do their job.
In other words, a mammoth class, but don't worry, practically everything is delegated/ aggregated!)
backup_controller::destroy |
( |
| ) |
|
Clean structures used by the backup_controller.
This method clean various structures used by the backup_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)
const backup::MODE_SAMESITE = 40 |
|
inherited |
This mode is intended for duplicating courses and cases where the backup target is within the same site.
This mode will ensure that files are not included in the backup generation, and during a restore they are copied from the existing file record.
For creating a backup for archival purposes or greater longevity, use MODE_GENERAL.