Je sais qu'en Drupal 7 je pourrais réinitialiser le mot de passe de l'utilisateur # 1 via le code.
define('DRUPAL_ROOT', getcwd());
require_once DRUPAL_ROOT . '/includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
require_once DRUPAL_ROOT . '/includes/password.inc';
$newhash = user_hash_password('newpass');
$updatepass = db_update('users')
->fields(array('pass' => $newhash))
->condition('uid', '1', '=')
->execute();
( user_hash_password()
n'existe plus dans Drupal 8.)
Alternativement, je pourrais utiliser le code suivant.
define('DRUPAL_ROOT', getcwd());
require_once DRUPAL_ROOT . '/includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
require_once DRUPAL_ROOT . '/includes/password.inc';
$edit['pass'] = 'newpass';
$account= user_load(1);
user_save($account, $edit);
Quel est le code équivalent pour Drupal 8? Quelle API dois-je utiliser à cet effet?
C'est plus facile de nos jours:
$account = \Drupal::entityTypeManager()->getStorage('user')->load(1);
$account->setPassword('new password');
$account->save();
Alternativement, puisque vous semblez l'exécuter en tant que script autonome, il existe une commande Drush (9.x)
drush user:password admin mynewpassword
Pour Drush 8.x et versions antérieures: :
drush user-password admin --password=newpass