forms
forms copied to clipboard
Helper for closures and non-static methods
- bug report? no
- feature request? yes
- version: 2.4.5
Description
I think it would be great to have helpers for closures and non-static methods. It can make JS validation easier and could lead to better code-writing. Correct me if I'm wrong, but for a good JS validation you have to use static methods or named functions that honestly don't belong there.
Naming those methods and closures could look like:
- Non-static methods' names could replace named functions (Class->methodname would result in {"op":"methodname",...})
- Non-static methods' names could look similar to current static methods' names (Class->methodname would result in {"op":"Class[some separator]methodname"})
- Closures' names could be generated by the name attribute as seen in my example below
- Users could name methods and closures themselves
exportRules() EXAMPLE
public static function exportRules(Rules $rules) { $payload = []; foreach ($rules as $rule_key => $rule) { if (!is_string($op = $rule->validator)) { $callback_name = Nette\Utils\Callback::toString($op); if ($callback_name === "{closure}") { $op = $rule->control->getName() . "_rule" . $rule_key; } else if (Nette\Utils\Callback::isStatic($op)) { $op = $callback_name; } else { //TODO replace for better separator instead of :: (requires js changes as well :/ $op = $callback_name; } /* * Original code that started on line 100 after 'if(!is_string...' * * if (!Nette\Utils\Callback::isStatic($op)) { continue; } $op = Nette\Utils\Callback::toString($op);*/ } //method continues as it should
Please use only english on GitHub.
Rewriten in English.
Thanks
Non-static methods' names could look similar to current static methods' names (Class->methodname would result in {"op":"Class[some separator]methodname"})
👍
Closures' names could be generated by the name attribute as seen in my example below
👎 it is too tricky
Users could name methods and closures themselves
That would be fine, but there is no way to do it.
You could achieve that by doing something like $form->....->addRule(callable,"name");
I don't think anything would change for other types of functions.
How is this related with onSuccess
?
Brainlag, sry.