it-swarm-eu.dev

Zobrazuje get_defined_vars () proměnné definované v proměnné_set ()?

Používám Drupal 6) a mám problémy s načtením sady proměnných, které jsem nastavil pomocí variable_set() pomocí variable_get(). Dělám dpr(get_defined_vars()), abych viděl, co je definováno, a nevidím své proměnné; vidím pouze pole $form A $form_state (Toto je uvnitř hook_submit()).

Zobrazuje get_defined_vars() všechny proměnné definované prostřednictvím variable_get()/variable_set()? Chtěl bych jen vidět seznam všech. Musím jen zjistit, jestli byly správně nastaveny, a řešit, proč je nemůžu načíst.

4
user1359

get_defined_vars je funkce PHP funkce, nikoliv funkce Drupal = funkce). V podstatě zobrazuje všechny proměnné, které jsou v rozsahu.

Drupal proměnné nastavené variabilní_set nejsou automaticky v rozsahu.

Proměnné jsou uloženy v global $conf; ale nepamatuji si, jestli jsou zde uloženy také proměnné.

Pokud nainstalujete Devel Module , je zde stránka pro prohlížení a editaci proměnných.

UPRAVIT:

Zvědavost se ke mně dostala. Editor proměnných v modulu Devel modul dotazuje {variable} tabulka a ne global $conf; sestavit podobu všech dostupných proměnných, což naznačuje, že je to správný způsob.

6
mpdonadio

To, co nastavíte pomocí funkce variable_set(), se nazývá „Drupal proměnné“ nebo „trvalé proměnné“. Nejedná se o PHP proměnné) a get_defined_vars() je nevrací.

Během bootstrapu je obsah tabulky „proměnných“ zkopírován do globální proměnné $conf, který obsahuje také hodnoty nastavené v settings.php, například přepsání řetězce.

$conf['locale_custom_strings_en'] = array(
  'forum'      => 'Discussion board',
  '@count min' => '@count minutes',
);

Pokud chcete ověřit, které Drupal proměnné jsou nastaveny), můžete použít globální proměnnou $conf, ale doporučuji to udělat pouze pro účely ladění, a nikoli v kódu, který veřejně distribuujete nebo používáte mimo testovací web.

1
kiamlaluno