problem with import aliases & export to object#157
problem with import aliases & export to object#157pupkinV wants to merge 1 commit intoonPHP:masterfrom
Conversation
|
А можно еще раз привести пример какую именно проблему оно решает? Т.е. пример который с этим фиксом работает, а без него не работает? |
$form = Form::create()->
add(Primitive::alias('n', Primitive::integer('number')))->
import(array('n' => 42));
//не будет работать (но только при нормальном исходе)!
import(array('n' => 'anystrig'));
//отработает нормальноcheckImportResult ошибку випиливает двояко: markGood для содержимого и unset для своей ошибки. |
|
Тогда опять вопрос - зачем добавлять алиас на примитив которого нет в форме? Оно на это не расчитано. |
|
ну он, какбэ, в форме.
|
|
По мне так цель PrimitiveAlias должен быть для внешнего пользования на вид полностью независимым примитивом. Только при создании нужно знать что он чей-то алиас. Все остальные проверки $prm instanceof PrimitiveAlias - хаки :) . В реквесте одна проверка убирается - две добавляются, да еще в двух разных классах вместо одного - Form'ы. Что бы избежать уников можно сделать в Form::add проверку - если PrimitiveAlias, то нужно проверить есть ли уже его алиас в форме. Если вдруг кто-то будет переименовывать примитивы добавленные, то я не уверен что форма к этому отнесется хорошо. Необходимость в текущем хаке связанном с markGood, думаю, пропадет, если-когда @soloweb накатит часть реквеста (о котором напомнил сегодня), отвечающую за вынос ошибок из формы в примитивы. |
|
понял. у нас разные представления. тему можно закрыть ибо для меня не принципиально. в своей версии, для совместимости, выпилю. |
concentration of the code and improvement obviousness