Moodle PHP Documentation 4.4
Moodle 4.4.1 (Build: 20240610) (db07c09afc5)
file_xml_database_importer Class Reference

XML format importer class from file storage. More...

Inheritance diagram for file_xml_database_importer:
xml_database_importer database_importer

Public Member Functions

 __construct ($filepath, moodle_database $mdb, $check_schema=true)
 Object constructor.
 
 begin_database_import ($version, $timestamp)
 Callback function.
 
 begin_table_import ($tablename, $schemaHash)
 Callback function.
 
 finish_database_import ()
 Callback function.
 
 finish_table_import ($tablename)
 Callback function.
 
 import_database ()
 Common import method: it opens the file storage, creates the parser, feeds the XML parser with data, releases the parser and closes the file storage.
 
 import_table_data ($tablename, $data)
 Callback function.
 
 set_transaction_mode ($mode)
 How to use transactions during the import.
 

Protected Member Functions

 cdata ($parser, $data)
 Callback function.
 
 get_parser ()
 Creates and setups a SAX parser.
 
 tag_close ($parser, $tag)
 Callback function.
 
 tag_open ($parser, $tag, $attributes)
 Callback function.
 

Protected Attributes

bool $check_schema
 Boolean flag - whether or not to check that XML database schema matches the RDBMS database schema before importing (used by.
 
 $current_data
 
 $current_data_is_null
 
 $current_field
 
 $current_row
 
 $current_table
 
string $filepath
 Path to the XML data file.
 
database_manager $manager
 Database manager of the target database (a.
 
moodle_database $mdb
 Connection to the target database (a.
 
xmldb_structure $schema
 Target database schema in XMLDB format (a.
 
moodle_transaction $transaction
 Transaction object.
 
string $transactionmode = 'allinone'
 How to use transactions.
 

Detailed Description

XML format importer class from file storage.

Constructor & Destructor Documentation

◆ __construct()

file_xml_database_importer::__construct ( $filepath,
moodle_database $mdb,
$check_schema = true )

Object constructor.

Parameters
string$filepath- path to the XML data file. Use 'php://input' for PHP input stream.
moodle_database$mdbConnection to the target database
See also
xml_database_importer\__construct()
Parameters
boolean$check_schema- whether or not to check that XML database
See also
xml_database_importer\__construct()

Member Function Documentation

◆ begin_database_import()

database_importer::begin_database_import ( $version,
$timestamp )
inherited

Callback function.

Should be called only once database per import operation, before any database changes are made. It will check the database schema if

See also
check_schema is true
Exceptions
dbtransfer_exceptionif any checking (e.g. database schema, Moodle version) fails
Parameters
float$versionthe version of the system which generated the data
string$timestampthe timestamp of the data (in ISO 8601) format.
Return values
void

◆ begin_table_import()

database_importer::begin_table_import ( $tablename,
$schemaHash )
inherited

Callback function.

Should be called only once per table import operation, before any table changes are made. It will delete all table data.

Exceptions
dbtransfer_exceptionan unknown table import is attempted
ddl_table_missing_exceptionif the table is missing
Parameters
string$tablename- the name of the table that will be imported
string$schemaHash- the hash of the xmldb_table schema of the table
Return values
void

◆ cdata()

xml_database_importer::cdata ( $parser,
$data )
protectedinherited

Callback function.

Called by the XML parser for character data processing.

Parameters
resource$parserXML parser resource.
string$datacharacter data to be processed
Return values
void

◆ finish_database_import()

database_importer::finish_database_import ( )
inherited

Callback function.

Should be called only once database per import operation, after all database changes are made. It will commit changes.

Return values
void

◆ finish_table_import()

database_importer::finish_table_import ( $tablename)
inherited

Callback function.

Should be called only once per table import operation, after all table changes are made. It will reset table sequences if any.

Parameters
string$tablename
Return values
void

◆ get_parser()

xml_database_importer::get_parser ( )
protectedinherited

Creates and setups a SAX parser.

Subclasses should use this method to create the XML parser.

Return values
resourceXML parser resource.

◆ import_database()

file_xml_database_importer::import_database ( )

Common import method: it opens the file storage, creates the parser, feeds the XML parser with data, releases the parser and closes the file storage.

Return values
void

Reimplemented from database_importer.

◆ import_table_data()

database_importer::import_table_data ( $tablename,
$data )
inherited

Callback function.

Should be called only once per record import operation, only between

See also
begin_table_import and
finish_table_import calls. It will insert table data.
Exceptions
dml_exceptionif data insert operation failed
Parameters
string$tablename- the name of the table in which data will be imported
object$data- data object (fields and values will be inserted into table)
Return values
void

◆ set_transaction_mode()

database_importer::set_transaction_mode ( $mode)
inherited

How to use transactions during the import.

Parameters
string$mode'pertable', 'allinone' or 'none'.

◆ tag_close()

xml_database_importer::tag_close ( $parser,
$tag )
protectedinherited

Callback function.

Called by the XML parser for closing tags processing.

Parameters
resource$parserXML parser resource.
string$tagname of opening tag
Return values
void

◆ tag_open()

xml_database_importer::tag_open ( $parser,
$tag,
$attributes )
protectedinherited

Callback function.

Called by the XML parser for opening tags processing.

Parameters
resource$parserXML parser resource.
string$tagname of opening tag
array$attributesset of opening tag XML attributes
Return values
void

Member Data Documentation

◆ $check_schema

bool database_importer::$check_schema
protectedinherited

Boolean flag - whether or not to check that XML database schema matches the RDBMS database schema before importing (used by.

See also
begin_database_import).

◆ $manager

database_manager database_importer::$manager
protectedinherited

Database manager of the target database (a.

See also
database_manager object).

◆ $mdb

moodle_database database_importer::$mdb
protectedinherited

Connection to the target database (a.

See also
moodle_database object).

◆ $schema

xmldb_structure database_importer::$schema
protectedinherited

Target database schema in XMLDB format (a.

See also
xmldb_structure object).

The documentation for this class was generated from the following file: