Note: You are currently viewing documentation for Moodle 3.11. Up-to-date documentation for the latest stable version of Moodle may be available here: local/sanitychecker/view.


From MoodleDocs

This add-on provides an interface to implement sanity checks on Moodle.

Moodle version

Moodle 2.3 or newer

Installation for Moodle 2.3, 2.4, 2.5 and 2.6

  • Go to the right directory
  • Before all, change your working directory to YOUR_MOODLE_DIRROOT/local where : YOUR_MOODLE_DIRROOT represents the root directory of your moodle site.

get the plugin

  • using git
  • Clone the plugin repository by running :
git clone sanitychecker

using archive

  • Download the zip archive directly from github and uncompress under sanitychecker directory :
wget -c   
unzip && mv moodle-local_sanitychecker-master sanitychecker   

finalize the installation

  • Authenticate with an administrator account and go to the notifications page to finish the install.
  • This page is located under :
where : YOUR_MOODLE_SITE is the domain of your moodle site.

How to use this feature

  • Once installed you will find a link under
Settings > Site administration
  • called Sanity checker. By clicking on it, you will be redirected to the plugin dashboard.
  • Its table lists all the available sanity checkers under four columns :
   Name : the implementation name
   Description : should describe what the checker is supposed to do
   Actions : here is displayed a dynamic link to run the actions to perform
   > check : to run the tests
   > resolve : in case a problem is found, apply the fix
   Information : displays contextual information about what is done
  • So choose which test you want to run and click on Run test.
  • If a problem is found the previous action link is renamed Resolve issue.
  • Click on it to apply the fix.

How to create a new sanity checker

  • implement the API

Create an implementation of the SanityChecker interface

interface SanityChecker {

    * get the sanity checker name
    * @return string       returns the name of this implementation
   public function getName();
    * get the description of what this sanity check does
    * @return string       returns the description of this implementation
   public function getDescription();
    * perform the test
    * @return boolean      returns true if the test succeeds, false if it fails
   public function doCheck();
    * get information on the problem detected
    * @return string       returns information related to the detected problem
    *                      or an empty string if there is no issue
   public function getInformationOnIssue();
    * resolve the problem
   public function resolveIssue();


or extends the abstract DatabaseSanityChecker

which is a class helper to perform sanity checks on database records.

register the service implementation

Add the class full name of your implementation on a new line in the ./classes/META-INF/services/evidev.moodle.plugins.sanitychecker file.

For now, you add to take care about providing a way to load your class by your own or to install it under the ./classes directory.

Each folder under the subtree of this directory, except META-INF , represents a part of the class namespace.

  • To illustrate this, the SanityChecker interface is declared under the namespace evidevmoodleplugins and is located at

See also

Download page