Add option to use another extensions, js and css methods.
This commit is contained in:
		| @@ -14,20 +14,36 @@ namespace Libs; | |||||||
| class View extends Neuron { | class View extends Neuron { | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * Función que "renderiza" las vistas |      * Incluye el archivo. | ||||||
|      * |      * | ||||||
|      * @param string $viewName |      * @param string $viewName  Ruta relativa y el nommbre sin extensión del archivo. | ||||||
|      *   Ruta relativa y el nommbre sin extensión del archivo ubicado en src/Views |      * @param string $viewPath  (opcional) Ruta donde se encuentra la vista. | ||||||
|      * |      * @param string $extension (opcional) Extensión del archivo. | ||||||
|      * @param array $params |  | ||||||
|      *   (opcional) Arreglo que podrá ser usado en la vista mediante $view ($param['index'] se usaría así: $view->index) |  | ||||||
|      * |  | ||||||
|      * @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/". |  | ||||||
|      * |      * | ||||||
|      * @return void |      * @return void | ||||||
|      */ |      */ | ||||||
|     public static function render(string $viewName, array $params = [], string $viewPath = null): void { |     private function include(string $viewName, string $viewPath = null, string $extension = 'php'): void { | ||||||
|  |         $view = $this; | ||||||
|  |  | ||||||
|  |         if (isset($viewPath) && file_exists("$viewPath$viewName.$extension")) { | ||||||
|  |             include("$viewPath$viewName.$extension"); | ||||||
|  |             return; | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         include(ROOT_DIR."/src/Views/$viewName.$extension"); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * Función que "renderiza" las vistas | ||||||
|  |      * | ||||||
|  |      * @param string $viewName  Ruta relativa y el nommbre sin extensión del archivo. | ||||||
|  |      * @param array  $params    (opcional) Arreglo que podrá ser usado en la vista mediante $view ($param['index'] se usaría así: $view->index) | ||||||
|  |      * @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/". | ||||||
|  |      * @param string $extension (opcional) Extensión del archivo. | ||||||
|  |      * | ||||||
|  |      * @return void | ||||||
|  |      */ | ||||||
|  |     public static function render(string $viewName, array $params = [], string $viewPath = null, string $extension = 'php'): void { | ||||||
|         $instance = new View($params); |         $instance = new View($params); | ||||||
|         $instance->html($viewName, $viewPath); |         $instance->html($viewName, $viewPath); | ||||||
|     } |     } | ||||||
| @@ -35,28 +51,49 @@ class View extends Neuron { | |||||||
|     /** |     /** | ||||||
|      * Renderiza las vistas HTML |      * Renderiza las vistas HTML | ||||||
|      * |      * | ||||||
|      * @param string $viewName |      * @param string $viewName  Ruta relativa y el nommbre sin extensión del archivo ubicado en src/Views | ||||||
|      *  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/". | ||||||
|  |      * @param string $extension (opcional) Extensión del archivo. | ||||||
|      * |      * | ||||||
|      * @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/". |  | ||||||
|      * @return void |      * @return void | ||||||
|      */ |      */ | ||||||
|     public function html(string $viewName, string $viewPath = null): void { |     public function html(string $viewName, string $viewPath = null, string $extension = 'php'): void { | ||||||
|         $view = $this; |         $this->include($viewName, $viewPath, $extension); | ||||||
|  |  | ||||||
|         if (isset($viewPath) && file_exists($viewPath.$viewName.'.php')) { |  | ||||||
|             include($viewPath.$viewName.'.php'); |  | ||||||
|             return; |  | ||||||
|     } |     } | ||||||
|  |  | ||||||
|         include(ROOT_DIR.'/src/Views/'.$viewName.'.php'); |     /** | ||||||
|  |      * Renderiza código CSS. | ||||||
|  |      * | ||||||
|  |      * @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/". | ||||||
|  |      * @param string $extension (opcional) Extensión del archivo. | ||||||
|  |      * | ||||||
|  |      * @return void | ||||||
|  |      */ | ||||||
|  |     public function css(string $viewName, string $viewPath = null, string $extension = 'css'): void { | ||||||
|  |         header("Content-type: text/css"); | ||||||
|  |         $this->include($viewName, $viewPath, $extension); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * Renderiza código Javascript. | ||||||
|  |      * | ||||||
|  |      * @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/". | ||||||
|  |      * @param string $extension (opcional) Extensión del archivo. | ||||||
|  |      * | ||||||
|  |      * @return void | ||||||
|  |      */ | ||||||
|  |     public function js(string $viewName, string $viewPath = null, string $extension = 'js'): void { | ||||||
|  |         header("Content-type: application/javascript"); | ||||||
|  |         $this->include($viewName, $viewPath, $extension); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * Imprime los datos en Json. |      * Imprime los datos en Json. | ||||||
|      * |      * | ||||||
|      * @param object|array $data |      * @param object|array $data Objeto o array que se imprimirá a JSON. | ||||||
|  |      * | ||||||
|      * @return void |      * @return void | ||||||
|      */ |      */ | ||||||
|     public function json(object|array $data): void { |     public function json(object|array $data): void { | ||||||
| @@ -67,7 +104,8 @@ class View extends Neuron { | |||||||
|     /** |     /** | ||||||
|      * Imprime los datos en texto plano |      * Imprime los datos en texto plano | ||||||
|      * |      * | ||||||
|      * @param string $txt |      * @param string $txt Contenido de texto. | ||||||
|  |      * | ||||||
|      * @return void |      * @return void | ||||||
|      */ |      */ | ||||||
|     public function text(string $txt): void { |     public function text(string $txt): void { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user