Come posso impostare le variabili per variabile_get ()?


9

Sto cercando di capire variable_get(). Ho letto così lontano che puoi impostare le variabili in settings.php usando l' $confarray e recuperarle successivamente nel codice usando variable_get(). Ho letto che puoi anche usare variable_get()per recuperare valori dal database.

Come funziona?
C'è una tabella che viene creata automaticamente?
Come imposteresti le variabili se questa funzione è possibile?

Risposte:


25

Forse speri di imparare che variabile_set è il modo magico per archiviare tutti i tipi di dati strutturati nel tuo database e che variabile_get è il modo per farli uscire di nuovo. Sfortunatamente no.

Le "variabili persistenti", come vengono spesso chiamate, sono pensate per coppie chiave-valore relativamente semplici che dovrebbero persistere tra richieste, utenti e sessioni, spesso fino a quando un amministratore del sito non modifica il valore. Un buon esempio è il nome del sito.

Quindi, come funziona?

Quando Drupal viene avviato, tutte le variabili vengono lette dalla cache (se disponibile) o dalla tabella delle variabili. (Vedi variabile_inizializzare per il codice esatto.) Le variabili e memorizzate nella $confvariabile globale , un array enorme. Drupal lo fa perché è più efficiente che eseguire una query nel database ogni volta che è necessaria una variabile. (È anche il motivo per cui variabile_set non è adatto a grandi quantità di dati: verrebbero caricati su ogni richiesta!)

Ogni volta che si utilizza variable_get('variable_name', 'default_value'), il nome della variabile viene cercato nell'array $ conf. Se esiste, il valore viene restituito; altrimenti, viene restituito il valore predefinito.

Infine, c'è un terzo membro della famiglia: variabile_del . Come suggerisce il nome, questo elimina una variabile dalla tabella delle variabili. Questa funzione viene spesso utilizzata nelle implementazioni hook_uninstall , eliminando le variabili quando un modulo viene disinstallato.

Se stai cercando modi per archiviare strutture di dati personalizzate più complesse nel database, controlla hook_schema e drupal_write_record o usa il sistema di entità Drupal e l' API Entity .


7
Un'altra nota importante è che variable_set()provoca la ricostruzione della cache variabile, quindi è qualcosa che di solito è riservato ai dati che è piuttosto duraturo e coerente come le impostazioni dell'amministratore e simili. Oppure, in altre parole, non dovrebbe essere usato al posto o come variabili statiche tra le funzioni che cambiano durante la creazione della pagina.
Jimajamma,

5

Se si utilizza Drush (fortemente consigliato), è possibile emettere drush vget > variables.txtdalla riga di comando per creare un file di testo con un elenco di tutte le variabili correnti e i loro valori. Allo stesso modo, è possibile utilizzare drush vsetper modificare impostare qualsiasi variabile su un valore diverso.

Vedere GitHub per maggiori dettagli su variable-get, variable-sete altri comandi utili.


3

Per impostare le variabili, è necessario utilizzare variabile_set () . Quindi è possibile recuperarli utilizzando variabile_get () . Dovresti familiarizzare con il sito dell'API di Drupal.

Le variabili, se memorizzate, sono disponibili nella tabella delle variabili.


Dalla discussione sopra non è chiaro come impostare la variabile nel modulo personalizzato. Quindi, come impostare la variabile dal modulo personalizzato?
Fawwad,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.