Quelle est la raison de la réouverture de la classe de modèle ?

J’ai remarqué que le modèle de sauvegarde définit un modèle, puis le rouvre quelques lignes plus bas dans le même fichier, en ajoutant des fonctions comme find, start, cancel, etc. Je me demande quelle est la raison derrière cela ? Pourquoi la classe doit-elle être rouverte ? Je suis sûr qu’il y a une raison valable… Je ne la connais simplement pas :slight_smile:

const Backup = Discourse.Model.extend({
  destroy() {},
  restore() {}
});

Backup.reopenClass({
  find() {
  ...
  }
  // etc
});

Voir : https://github.com/discourse/discourse/blob/master/app/assets/javascripts/admin/models/backup.js.es6

Bonne question, j’étais aussi un peu confus à ce sujet !

reopenClass sert à ajouter des méthodes statiques (ou des propriétés) à la classe elle-même. Je ne pense pas qu’il soit possible de définir une méthode statique via Ember.Object.extend.

Plus d’informations sur reopenClass et reopen : https://guides.emberjs.com/release/object-model/reopening-classes-and-instances/