Add option to use another extensions, js and css methods.
This commit is contained in:
parent
341d7837a1
commit
e2094ccb4a
@ -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 {
|
||||||
|
Loading…
Reference in New Issue
Block a user