/** * render * @param string $view テンプレート名 * @param array $variables テンプレート変数のハッシュ * @return \Core\Foundation\Response\RenderResponse */ function render(string $view=null, array $variables=[]):Core\Foundation\Response\RenderResponse { $variables['errors'] = errors(); $html = isset($view) ? Core\View::run($view, $variables) : null; return new Core\Foundation\Response\RenderResponse($html); } /** * redirect * @param string $url URL * @return \Core\Foundation\Response\RedirectResponse */ function redirect(string $url):Core\Foundation\Response\RedirectResponse { return new Core\Foundation\Response\RedirectResponse($url); } /** * Get old request inputs * @param string $key * @param mixed $default * @return string */ function old(string $key, $default = null) { $old_inputs = flash(Core\Foundation\Response::FLASH_KEY_OLD); return isset($old_inputs) && array_key_exists($key, $old_inputs) ? $old_inputs[$key] : $default; } /** * Get old URL Path * @return string URL */ function back():string { if (array_key_exists('HTTP_REFERER', $_SERVER) && isset($_SERVER['HTTP_REFERER'])) { $url = '/'; $info = parse_url($_SERVER['HTTP_REFERER']); if (array_key_exists('path',$info)) $url = $info['path']; if (array_key_exists('query',$info)) $url .= '?'.$info['query']; if (array_key_exists('fragment',$info)) $url .= '#'.$info['fragment']; return $url; } else { return flash(Core\Foundation\Response::FLASH_KEY_BACK, '/'); } } /** * Get response errors * @return \Core\Foundation\ErrorBag */ function errors():Core\Foundation\ErrorBag { $errors = Core\Flash::has(Core\Foundation\Response::FLASH_KEY_ERRORS) ? flash(Core\Foundation\Response::FLASH_KEY_ERRORS) : new Core\Foundation\ErrorBag(); return $errors; }