Я пишу некоторый код PHP для парсинга входящих URL. Это полагается в большой степени на PHP globals такой как $_SERVER
и $_GET
. Я думаю о ручной установке их в модульном тесте PHPUnit setUp()
функция. Существует ли лучший способ сделать это?
Идея заключалась бы в том, чтобы обернуть $ _SERVER и $ _GET в классы вместо прямого доступа к ним, чтобы вам не приходилось полностью полагаться на них. Вы часто видите этот подход в общих фреймворках. Таким образом, вы можете легко заглушить или имитировать запрос без необходимости настраивать состояние суперглобальных переменных.
Вот пример такого класса: https://codereview.stackexchange.com/questions/73515/http-request-response-class