Open ivanych opened 8 years ago
Смысд мне ясен. Надо подумать. Хочется, что бы подобное поведение было настраваемым, т.к разным людям могут поднадобиться разное поведение.
Подобного рода настройки можно вынести в swat.ini, например:
swat_skip_module_empty_parameter=1
ну или как-то придумать более подходящее название ...
Я даже не знаю, зачем может понадобиться другое поведение... Вроде же логично: задал параметры - они передались, не задал - не передались. Зачем может понадобиться отправка параметра в виде %param%
?
А если не задал, а просто забыл, или ошибно передано пусток значение? как различить этой кейс от намеренно не переданного значения ?
А в чем разница?
В CGI же нету какого-то NULL, который "осмысленно не передан". Параметр либо передан, либо нет.
Coppи, перечитал твой изначальный коммент, видимо неправильно тебя понял ... т.е. ты предлагаешь обнулять плейсхолдеры %foo% если значение для конрутного плейсхолдеоа foo не передано как переменная модуля?
Ты, наверное, предполагаешь, что кому-то может понадобиться передать имя параметра без указания значения? Не знаю, зачем это может быть нужно, но пусть. Значит, нужно просто отправлять пустое значение. Это ничего не должно сломать.
А уж если включен параметр wat_skip_module_empty_parameter=1, то тогда вообще имя параметра не включать в запрос.
Ну т.е. да, обнулять плейсхолдеры - это однозначно, а убирать параметры совсем - можно опционально.
Ну т.е. да, обнулять плейсхолдеры
ок
убирать параметры совсем
предлагаю все же оставлять как есть - пустым, т.е. в твое случае в curl_params будет
param1=value1¶m2=
незаданный параметр - значит пустой
незаданный параметр - значит пустой
Это по умолчанию надо сделать.
Но еще можно опционально сделать убирание незаданных параметров вообще.
Ok, понял тебя, буду думать
Допустим, некий метод в моём API принимает два параметра. Параметры необязательные и независимые.
Я делаю сват-модуль, описывающий этот метод:
Если я вызову модуль так:
то сгенерируется такой запрос:
Т.е. второй параметр тоже будет добавлен в запрос, причем, значением его будет полная ерунда.
Можно при вызове модуля задать второй параметр равным пустой строке, но это неудобно делать, потому что придется зря указывать кучу пустых параметров, в тех вызовах, в которых эти параметры не нужны.
Можно ли сделать так, чтобы неуказанные в вызове параметры вообще не вставлялись в генерируемый запрос? Ну, или, по крайней мере, пусть вставляются с пустым значением.