PHP - Безопасные альтернативы PHP Globals (хорошая практика кодирования)
Войти

PHP - Безопасные альтернативы PHP Globals (хорошая практика кодирования)

PHP - Безопасные альтернативы PHP Globals (хорошая практика кодирования)

В течение многих лет я использовал глобальные $ var, $ var2, ..., $ varn для методов в моем приложении. Я использовал их для двух основных реализаций:

Получение уже заданного класса (например, соединение с БД) и передача информации в функции, отображаемые на странице.
1
2
3
4
5
6
7
8
9
10
11
12
<?php 

$output
['header']['log_out'] = "Log Out";
function 
showPage(){
     global 
$db$output;
     
$db = ( isset( $db ) ) ? $db : new Database();
     
$output['header']['title'] = $db->getConfig'siteTitle' );
     require( 
'myHTMLPage.html' );
     exit();
}

?>
Тем не менее, есть последствия для производительности и безопасности для этого.

Какую альтернативную практику я могу использовать, чтобы сохранить мои функциональные возможности, но улучшить дизайн, производительность и / или безопасность?

Это первый вопрос, который я когда-либо задавал в SO, поэтому, если вам нужны пояснения, прокомментируйте!

PHP не имеет реальных глобальных переменных. И мифы о безопасности связаны с путаницей с register_globals. Глобальная политика $ db - очень распространенная практика. Ваша переменная $ output может быть менее целесообразной (не могу сказать из короткого фрагмента). Как правило: доступ к доступу с глобальным охватом практически осуществим, а его использование для сигнализации не должно распространяться.

Теги:
php