protected function extractCallbacks(&$args, &$list, &$path)
    {
        foreach ($args as $k => &$v) {
            if (is_array($v)) {
                if (sizeof($v) === 2) {
                    if (isset($v[0]) && is_object($v[0])) {
                        if (isset($v[1]) && is_string($v[1])) {
                            $id = ++$this->counter;
                            if ($this->persistentMode) {
                                $this->persistentCallbacks[$id] = $v;
                            } else {
                                $this->callbacks[$id] = $v;
                            }
                            $v = '';
                            $list[$id] = $path;
                            $list[$id][] = $k;
                            continue;
                        }
                    }
                }
                $path[] = $k;
                $this->extractCallbacks($v, $list, $path);
                array_pop($path);
            } elseif ($v instanceof \Closure) {
                $id = ++$this->counter;
                if ($this->persistentMode) {
                    $this->persistentCallbacks[$id] = $v;
                } else {
                    $this->callbacks[$id] = $v;
                }
                $v = '';
                $list[$id] = $path;
                $list[$id][] = $k;
            }
        }
    }
protected function extractCallbacks(&$args, &$list, &$path)
    {
        foreach ($args as $k => &$v) {
            if (is_array($v)) {
                if (sizeof($v) === 2) {
                    if (isset($v[0]) && is_object($v[0])) {
                        if (isset($v[1]) && is_string($v[1])) {
                            $id = ++$this->counter;
                            if ($this->persistentMode) {
                                $this->persistentCallbacks[$id] = $v;
                            } else {
                                $this->callbacks[$id] = $v;
                            }
                            $v = '';
                            $list[$id] = $path;
                            $list[$id][] = $k;
                            continue;
                        }
                    }
                }
                $path[] = $k;
                $this->extractCallbacks($v, $list, $path);
                array_pop($path);
            } elseif ($v instanceof \Closure) {
                $id = ++$this->counter;
                if ($this->persistentMode) {
                    $this->persistentCallbacks[$id] = $v;
                } else {
                    $this->callbacks[$id] = $v;
                }
                $v = '';
                $list[$id] = $path;
                $list[$id][] = $k;
            }
        }
    }
protected function extractCallbacks ( & $ args , & $ list , & $ path ) { foreach ( $ args as $ k => & $ v ) { if ( is_array ( $ v ) ) { if ( sizeof ( $ v ) === 2 ) { if ( isset ( $ v [ 0 ] ) && is_object ( $ v [ 0 ] ) ) { if ( isset ( $ v [ 1 ] ) && is_string ( $ v [ 1 ] ) ) { $ id = ++ $ this -> counter ; if ( $ this -> persistentMode ) { $ this -> persistentCallbacks [ $ id ] = $ v ; } else { $ this -> callbacks [ $ id ] = $ v ; } $ v = '' ; $ list [ $ id ] = $ path ; $ list [ $ id ] [ ] = $ k ; continue ; } } } $ path [ ] = $ k ; $ this -> extractCallbacks ( $ v , $ list , $ path ) ; array_pop ( $ path ) ; } elseif ( $ v instanceof \ Closure ) { $ id = ++ $ this -> counter ; if ( $ this -> persistentMode ) { $ this -> persistentCallbacks [ $ id ] = $ v ; } else { $ this -> callbacks [ $ id ] = $ v ; } $ v = '' ; $ list [ $ id ] = $ path ; $ list [ $ id ] [ ] = $ k ; } } }
Extracts callback functions from array of arguments
@param  array &$args Arguments
@param  array &$list Output array for 'callbacks' property
@param  array &$path Recursion path holder
@return void
Extracts callback functions from array of arguments