Доступ к переменной (локальной или глобальной) PHP-файла из smarty
У меня есть php-файл, который имеет некоторые локальные и глобальные переменные (например, $foo)
из этого файла вызывается объект smarty.
Как получить доступ к $foo из smarty script без изменения файла PHP?
Спасибо
3 ответа:
Если у вас есть постоянная переменная, называемая BASE, и определенная следующим образом:
define('BASE', 'Boise');Вы можете получить доступ к переменной в smarty следующим образом:
$smarty.const.BASE
Раньше вы могли обойти это с помощью тегов
{php}{/php}, но поскольку это не рекомендуется, теперь вы должны назначить свои переменные через$smarty->assign(), единственное исключение-константы и переменные сервера, к которым у вас все еще есть прямой доступ через объект$smarty.(вы также можете повторно включить теги
{php}, Если хотите и не заботитесь о потенциальных причинах безопасности, по которым они были отключены в первую очередь).Любая из переменных запроса, таких как
$_GET,$_POST,$_COOKIE,$_SERVER,$_ENVи$_SESSIONдоступны через объект$smarty.Благодаря этому-большая часть данных, с которыми я работаю, может быть просто доступна через объект
$smartyбез необходимости создавать тонну (скопированных) переменных.Напр.:
- доступ к константе:
{$smarty.const.MY_CONST_VAL}- доступ к $ _SERVER var:
{$smarty.server.REQUEST_METHOD}//все в $_SERVER доступно- хватаю что-то из $_SESSION:
{$smarty.session.MY_SESSION_VAL}//Все в $_SESSION является доступно