J'ai du code dans Drupal 7 ce qui utilise variable_get. Maintenant, je voudrais écrire le code dans Drupal 8. Donc je lisais ceci mais cela ne m'a pas beaucoup aidé.
Comment écrire ce code dans Drupal 8 à partir du code dans Drupal 7?
$types = array_values(variable_get('test_content_types', array()));
ou ca
'#default_value' => variable_get('test_content_types', array()),
Une suggestion.
Dans Drupal 7
$data = variable_get('test_content_types');
Dans Drupal 8
$data = \Drupal::state()->get('test_content_types');
Pour plus d'informations sur "get", "set", "delete" visitez - Étape 5: Comment mettre à niveau les variables D7 vers le système d'état de D8 .
La réponse acceptée est la moitié de la réponse. Comme le note marcvangend, il existe deux options dans Drupal 8 pour ce qui était auparavant stocké dans la table des variables et a été stocké et récupéré avec variable_set()
et variable_get()
. Le premier, documenté dans la réponse de darol100, est le State API .
Le second est Configuration API et doit être utilisé dans la plupart des cas où vous avez un formulaire de configuration. Il nécessite à minimum dans votre module un fichier d'installation de configuration, par exemple config/install/example.settings.yml
. Pour une seule configuration (avec plusieurs valeurs potentielles), ce fichier pourrait simplement contenir par exemple:
test_content_types: - article
Et puis utilisez la valeur avec:
$types = \Drupal::config('example.settings')->get('test_content_types');
Ou modifiez les valeurs enregistrées avec:
\Drupal::service('config.factory')
->getEditable('example.settings')
->set('test_content_types', ['article', 'page'])
->save();
Voir aussi la documentation Drupal 8 pour Mises à niveau de configuration D7 à D8 et en utilisant la configuration dans les modules .