From 4c4fe6f1f7308991a8ed8a36361c16bc00f986ee Mon Sep 17 00:00:00 2001 From: kj Date: Sat, 25 Jun 2022 21:11:11 -0400 Subject: [PATCH] Change View to work as instance and render text and json. --- src/Libs/View.php | 39 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 36 insertions(+), 3 deletions(-) diff --git a/src/Libs/View.php b/src/Libs/View.php index 8a20336..a5a60e9 100644 --- a/src/Libs/View.php +++ b/src/Libs/View.php @@ -11,7 +11,7 @@ namespace Libs; -class View { +class View extends Neuron { /** * Función que "renderiza" las vistas @@ -26,13 +26,46 @@ class View { * (opcional) Ruta donde se encuentra la vista. En caso de que la vista no se encuentre en esa ruta, se usará la ruta por defecto "src/Views/". */ public static function render(string $viewName, array $params = [], string $viewPath = null) { - $view = new Neuron($params); - unset($params); + $instance = new View($params); + $instance->html($viewName, $viewPath); + } + + /** + * Renderiza las vistas HTML + * + * @param string $viewName + * Ruta relativa y el nommbre sin extensión del archivo ubicado en src/Views + * + * @param string $viewPath + * (opcional) Ruta donde se encuentra la vista. En caso de que la vista no se encuentre en esa ruta, se usará la ruta por defecto "src/Views/". + */ + public function html(string $viewName, string $viewPath = null) { + $view = $this; if (isset($viewPath) && file_exists($viewPath.$viewName.'.php')) return include($viewPath.$viewName.'.php'); include(ROOT_DIR.'/src/Views/'.$viewName.'.php'); } + + /** + * Imprime los datos en Json. + * + * @param object $data + */ + public function json(object $data) { + header('Content-Type: application/json'); + print(json_encode($data)); + } + + /** + * Imprime los datos en texto plano + * + * @param string $txt + */ + public function text(string $txt) { + header('Content-Type: text/plain'); + print(json_encode($txt)); + } } ?>