PrimitiveRule, изменение внутренностей Form::addRule, checkRules и т.д.#169
PrimitiveRule, изменение внутренностей Form::addRule, checkRules и т.д.#169AlexeyDsov wants to merge 1 commit intoonPHP:masterfrom
Conversation
rule должны отрабатыватся после того как проимпортятся примитивы в текущем варианте нужно будет дважны проходить по списку проверяя не Rule ? для импорта
я бы оставил масив rule, чтоб не делать лишних пробежек по примитивам. |
|
а помнится там был PrimitiveRuleTest. В нем, что ничего путного не нашлось? |
С чего вдруг? Сделали ВСЕ импорты - вызвали проверку правил через checkRules прошли по всем Rule'ам.
А что там есть такого чего нет в текущем тесте?
так в той теме и обсуждай |
|
@stev есть в этом доля правды: добавляются отдельным методом, запускаются отдельным методом. Так зачем их сливать в один массив с примитивами, чтобы потом использовать хак instansof разделяя их. хм.. |
|
PrimitiveRule выглядит странно, правило ведь совсем не примитив. Правило может заниматься всей формой хоть всеми остальными примитивами, тогда возникает вопрос почему у нас есть примитив, который не умеет импорт и проверяет/меняет другие примитивы, да еще и вызывается в другом, специальном методе. Может быть всё же подумать как сделать правила красивее, хотя они меня в текущем виде не только устраивают, но и очень нравятся, у меня куча всего на них завязано. |
|
@anisimovt 1) BC не ломается. Form::addRule можно использовать всё так же дальше 2) Правила в таком виде как есть не могу использовать в EntityProto т.к. там задается только список примитивов. 4) Я не в восторге от работы с двумя массивами ошибок errors и violated в методах getErrors, hasError, markCustom и т.д. |
|
соглашусь с @anisimovt import не просто притянут за уши, но единственный параметр который был теперь nill, а добавился $form который null при нормальном использовании =) |
|
Может это тогда проблема EntityProto, а не формы? Я не спорю что не ломается BC, но и мирится с тем что правила, которые что-то делают с примитивами, тоже становятся примитивами не хочется. И то что они не импортируютя и проверяются в другом месте тоже не красиво. Я не отрицаю саму идею, но может её можно сделать по другому? Честно сказать неудобства от работы с 2 массивами ошибок не испытвал, они всё равно объединяются в getErrors(). Ну и ожидание формы в методе импорта примитива совсем меня с толку сбивает |
|
@anisimovt таки убедил в переписке что оно для моих целей не стоит. в новом году сделаю некоторые изменения связанные с EntityProto |
PrimitiveRule, вырезанный из #101. Оно мне понравилось и хочется заюзать.
Лирическое отступление. Решил вырезать его оттуда т. к. все вместе выглядит большим и пугающим, а добровольцы желающие его дописать пока еще не разобрались как дружить с тестами, и не сильно загорелись желанием разделять код на части.
Идея следующая