Skip to content

Helper for closures and non-static methods #163

Open
@2bad2furious

Description

  • 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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions