request = $request; $this->register($context); } public function parse(/*\Picae\Compiler\Context*/ &$context, ?string $arguments, string $token) : string { } public function register(Context $context) : void { $context->pushFunction("cookie", [ $this, 'cookie' ]); $context->pushFunction("get", [ $this, 'get' ]); $context->pushFunction("post", [ $this, 'post' ]); $context->pushFunction("post", [ $this, 'post' ]); } public function cookie(string $variableName) { return static::arrayGet($this->request->getCookieParams(), $variableName); } public function get(string $variableName) { return static::arrayGet($this->request->getQueryParams(), $variableName); } public function post(string $variableName) { return static::arrayGet($this->request->getParsedBody(), $variableName); } public function server(string $variableName) { return static::arrayGet($this->request->getServerParams(), $variableName); } public static function arrayGet(array $array, string $path, string $delimiter = '.') { $pathArr = explode($delimiter, $path); if ( isset($array[$pathArr[0]]) ) { if ( isset($pathArr[1]) ) { return static::arrayGet($array[array_shift($pathArr)], implode($delimiter, $pathArr)); } else { return $array[$pathArr[0]]; } } else { return null; } } }