-
Notifications
You must be signed in to change notification settings - Fork 52
PrimitiveRule, изменение внутренностей Form::addRule, checkRules и т.д. #169
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
rule должны отрабатыватся после того как проимпортятся примитивы в текущем варианте нужно будет дважны проходить по списку проверяя не Rule ? для импорта
я бы оставил масив rule, чтоб не делать лишних пробежек по примитивам. |
а помнится там был PrimitiveRuleTest. В нем, что ничего путного не нашлось? |
С чего вдруг? Сделали ВСЕ импорты - вызвали проверку правил через checkRules прошли по всем Rule'ам.
А что там есть такого чего нет в текущем тесте?
так в той теме и обсуждай |
} | ||
|
||
return $this; | ||
return $this->primitiveExists($name) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@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. Оно мне понравилось и хочется заюзать.
Лирическое отступление. Решил вырезать его оттуда т. к. все вместе выглядит большим и пугающим, а добровольцы желающие его дописать пока еще не разобрались как дружить с тестами, и не сильно загорелись желанием разделять код на части.
Идея следующая