Если у вас есть некоторый код, который использует $ _GET ['foo'], чтобы сделать что-то, то лучший способ справиться с этим - извлечь этот код в класс / метод / функцию, а затем получить контекстно-зависимый каркас, который собирает соответствующие данные из среды и передают их в блок кода для выполнения своих задач.
Допустим, у вас был встроенный PHP-скрипт, подобный этому:
$foo = $_GET['foo'];
// do what I need to do with $foo
Тогда вы можете обернуть это в функцию
function doBar( $foo ) {
// do what I need to do with $foo
}
Ваш встроенный PHP-скрипт теперь будет
$foo = $_GET['foo'];
doBar( $foo );
И вы можете очень легко написать CLI-скрипт для проверки этого, либо установив $ foo напрямую
$foo = 'test value';
doBar( $foo );
Или путем анализа входов CLI и получения оттуда foo.
По сути, ваш код, который делает вещи (модель в традиционном MVC), изолирован от своей среды и может быть использован через HTTP-запрос, в скрипте CLI, в модульном тесте и т. Д.
Одна вещь, от которой я бы остался в стороне, это присвоение ваших собственных значений суперглобальным переменным $ _GET и $ _POST. Это вонючий и быстрый способ дать вам проблемы в будущем.