PHP

4 небольших, но весьма полезных функции PHP

При работе над приложением для клиентов разработчику приходится сталкиваться с непредсказуемыми условиями рабочего окружения, установками сервера и конфигурациями. Чтобы исправить положение можно использовать 4 простые, но эффективные PHP функции.

В ходе разработки нужно получать сообщения об ошибках как можно более высокого уровня. Но в рабочих версиях сервера нужно скрывать такие сообщения. Для этого можно использовать простую функцию, которая будет проверять константу DEVELOPMENT_ENVIRONMENT и действовать соответственно установкам:
 	function setReporting() {
 	    if (DEVELOPMENT_ENVIRONMENT == true) {
 	        error_reporting(-1);
 	        ini_set('display_errors','On');
 	    } else {
 	        error_reporting(-1);
 	        ini_set('display_errors','Off');
 	        ini_set('log_errors', 'On');
 	        ini_set('error_log', ROOT.DS.'lm/tmp'.DS.'logs'.DS.'error.log');
 	    }
 	}


Путь к хранилищу сообщений об ошибках в последней строке нужно установить свой.

Вторая функция является вспомогательной для третьей функции:
 	function stripSlashesDeep($value) {
 	    $value = is_array($value) ? array_map('stripSlashesDeep', $value) : stripslashes($value);
 	    return $value;
 	}


Она используется в следующей функции:
 	function removeMagicQuotes() {
 	    if ( get_magic_quotes_gpc() ) {
 	        $_GET     = stripSlashesDeep($_GET   );
 	        $_POST   = stripSlashesDeep($_POST  );
 	        $_COOKIE = stripSlashesDeep($_COOKIE);
 	    }
	}

Если окружение использует Magic Quotes, то выше приведенная функция пропускает обработку строк.

Последняя по порядку, но не по значению функция проверяет дьявольскую регистрацию глобальных установок и корректно исправляет ее:
 	function unregisterGlobals() {
 	    if (ini_get('register_globals')) {
 	        $array = array('_SESSION', '_POST', '_GET', '_COOKIE', '_REQUEST', '_SERVER', '_ENV', '_FILES');
	        foreach ($array as $value) {
 	            foreach ($GLOBALS[$value] as $key => $var) {
 	                if ($var === $GLOBALS[$key]) {
 	                    unset($GLOBALS[$key]);
 	                }
 	            }
 	        }
 	    }
 	}

И приложение снова в безопасности.

Такие мелочи существенно облегчают жизнь при разработке проектов на PHP.
Добавлено: 16 Августа 2013 10:41:38 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...