Add a PUT route with a callable and optionally a templatePath.

@param string      $url
@param callable    $callable
@param string|null $name
@param string|null $templatePath

@return $this
426788
public function put($url, $callable, $name = null, $templatePath = null)
    {
        $this->multiple([\Parable\Http\Request::METHOD_PUT], $url, $callable, $name, $templatePath);
        return $this;
    }
511255
public function addRemote($url, $name = 'origin') {
    $this->getRunnerWithDirectory()->run($this->getResettedCommandBuilder()->addSubcommand('remote')->addSubcommand('add')->addParam($name)->addParam($url));
    return $this;
  }
687198
public function delete($path, $callable, $name = null) {
		return $this->add($path, $callable, $name, self::HTTP_METHOD_DELETE);
	}
618126
public function get($path, $callable, $name = null) {
		return $this->add($path, $callable, $name, self::HTTP_METHOD_GET);
	}
558692
public static function use(string $name, callable $callback)
    {
        $resource = static::getResource($name);
        $result = null;
        try{
            $result = call_user_func($callback, $resource, $resource->getInstance());
        }
        finally{
            static::releaseResource($resource);
        }
        return $result;
    }
827432
public function get($url, $callable, $name = null, $templatePath = null)
    {
        $this->multiple([\Parable\Http\Request::METHOD_GET], $url, $callable, $name, $templatePath);
        return $this;
    }
666415
public static function put($path, $callback)
    {
        self::instance()->addRoute('PUT', $path, self::callback($callback));
    }
141782
public function put(string $url, $callback): Route
    {
        $route = new Route(['PUT'], $url, $callback);
        $this->addRoute($route);

        return $route;
    }
1257879
public function put(string $path, callable $callback, int $priority = 0)
    {
        return $this->route('put', $path, $callback, $priority);
    }
1132678
public function trial($name, callable $callback, $context = null)
    {
        $this->trials[$name] = new Trial($name, $callback, $context);

        return $this;
    }
1336373
public function addTabURL($name, $url)
    {
        $item = $this->addTabMenuItem($name);
        $this->addSubView($item->name);

        $item->setPath($url);
    }
452801
public function addRuleCallback($name, Callable $callback)
    {
        if (!is_string($name)) {
            throw new \InvalidArgumentException('Rule must be a string');
        }

        $rule = $this->createRuleCallback($name, $callback);
        $this->addRule($rule);
    }
331999
public function add($route, $callable, $type = 'any')
    {
        // Check if the route ends with a forward slash
        if ($route && substr($route, -1) !== '/') {
            $route .= '/';
        }

        // Add the route
        $this->routes[strtolower($type)][$route] = $callable;
        return $this;
    }
311130
public function addRuleAnnotation(\Imi\Server\Route\Annotation\Route $annotation, $callable, $options = [])
    {
        $this->rules[$annotation->url][$this->hashKey($annotation)] = array_merge([
            'annotation'=> $annotation,
            'callable'  => $callable,
        ], $options);
    }
1352033
public function addTwigFunction($name, callable $function, array $options = [])
    {
        $twigfunction = new \Twig_SimpleFunction($name, $function, $options);

        $this->twig->addFunction($twigfunction);
    }
445211
public function put($name, $path, $controller = null)
    {
        $this->add('PUT', $name, $path, $controller);
        return $this;
    }
685889
public function setCallable($callable)
    {
        $matches = array();
        if (is_string($callable) && preg_match('!^([^\:]+)\:([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)$!', $callable, $matches)) {
            $class = $matches[1];
            $method = $matches[2];
            $callable = function() use ($class, $method) {
                static $obj = null;
                if ($obj === null) {
                    $obj = new $class;
                }
                return call_user_func_array(array($obj, $method), func_get_args());
            };
        }

        if (!is_callable($callable)) {
            throw new \InvalidArgumentException('Route callable must be callable');
        }

        $this->callable = $callable;
    }