Implémentation des commandes dans les objets Boardz

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.

ROADMAP

Autoriser une identification alternative par UID.

Revenir au sommaire