| |
Les commandes sont des fonctions sur les classes mappées sur les entités administrables par ligne de commande, et dont le nom interne commence par cmd_.
Exemple :
class MoodleCubeMeasurement extends Measurement {
/**
* clear terminal driven command.
*/
public static function cmd_clear($args) {
if (Native::empty($args)) {
throw new BoardzException("Empty argument for clear. Give measurementid");
} else {
$measurementid = ArrayUtils::array_shift($args);
}
self::$BDDB->delete_records('moodle_calc_cube', ['measurementid' => $measurementid]);
self::$BDDB->delete_records('moodle_calc_cube_daily', ['measurementid' => $measurementid]);
self::$BDDB->delete_records('moodle_calc_cube_weekly', ['measurementid' => $measurementid]);
self::$BDDB->delete_records('moodle_calc_cube_monthly', ['measurementid' => $measurementid]);
self::$BDDB->delete_records('moodle_calc_cube_yearly', ['measurementid' => $measurementid]);
Console::log("MoodleCubeMeasurement results cleared for measurement $measurementid");
}
Définit une commande “clear” acceptant un argument numérique valant pour un “measurementid”
Le mapping des entités administrables est fournie dans la fonction privée locate() de la classe \boardz\BoardzServer :
static $locations = [
'storage' => '\boardz\data_storage\Storage',
'parser' => '\boardz\feeder\Parser',
'filter' => '\boardz\feeder\Filter',
'moodlecube' => '\boardz\data_storage\MoodleCube',
'moodlecubemeasurement' => '\boardz\data_processing\MoodleCubeMeasurement',
'moodlesync' => '\boardz\moodle\datasync\MoodleSyncScheduler',
'backup' => '\boardz\utils\BackupManager',
];
La mise en oeuvre du mapping de classe et de la commande cmd_clear() permet de proposer l'appel suivant :
./boardz moodlecubemeasurement clear 20
Pour vider les données précalculées de la mesure d'id 20.