Anuncios

Bienvenidos sean a este post, hoy veremos la clase para controlarlos a todos.

Anuncios

Hasta el post anterior hemos establecido la base de nuestro MVC pero como vimos en ese post si abrimos nuestro proyecto nos devolvera la vista del error 404 porque no existe nada, nuestro primero paso sera crear un nuevo archivo llamado default.php dentro del directorio Views en el directorio app, y le agregaremos un simple mensaje:

default.php

Hola desde la vista predeterminada
Anuncios

Esta sera la vista predeterminada que usaremos cuando vayamos al inicio pero por el momento no funcionara, nuestro siguiente paso sera crear un archivo llamado ControladorBase.php en el directorio system, una vez generado le agregaremos estas lineas:

ControladorBase.php

<?php

namespace System;

use System\View;
Anuncios

En este caso primero establecemos el namespace, luego importamos a la clase View, lo siguiente sera definir nuestra clase para ello agregaremos el siguiente bloque:

class ControladorBase
{

}
Anuncios

Lo primero que haremos en esta clase sera agregar estas dos variables:

public $view;
public $url;
Anuncios

La primera sera usada para almacenar una vista y la segunda el url pero ya veremos para que, ahora agreguemos el siguiente metodo:

        public function __construct()
        {
                $this->view = new View();
                $this->url = $this->getUrl();

                if (ENTORNO == 'desarrollo')
                {
                        $whoops = new \Whoops\Run;
                        $whoops->pushHandler(  
                                new \Whoops\Handler\PrettyPageHandler);
                        $whoops->register();
                }
        }
Anuncios
Anuncios

Este metodo sera un constructor para nuestra clase, en este caso uno predeterminado para cuando creamos un objeto de esta clase, lo primero que haremos es crear un nuevo objeto de la clase View y lo asignaremos a la variable view, despues en la variable url almacenaremos el resultado del metodo getUrl de la cual hablaremos luego, por ultimo tenemos un condicional donde verifica si la constante ENTORNO es igual a desarrollo, de lo cual hablamos en este post, en caso de ser verdadero procede a crear un nuevo objeto de la dependencia Whoops, una vez creado el objeto usaremos dos metodos de esta clase/dependencia que nos permitiran menejar de mejor forma de los errores, nuestro ultimo paso sera agregar el siguiente metodo:

	protected function getUrl()
	{
		$url = isset($_SERVER['REQUEST_URI']) ?
			rtrim($_SERVER['REQUEST_URI'],'/') :
			NULL;
		$url = filter_var($url, FILTER_SANITIZE_URL);
		return $this->url = $url;
	}
Anuncios

Aqui tenemos el metodo que utilizaremos para obtener la url y lo asignaremos a la variable url, para ello primero chequearemos si existe una url informada, en caso de ser cierto limpiamos todos los espacios en blanco de este, en caso de no ser asi asigna el valor NULL, luego a este valor le aplicaremos la funcion filter_var que nos permite filtrar una variable con el filtro que le pasemos, en este caso eliminara todos los signos a excepcion de letras y digitos, una vez realizado lo devolvemos y asignamos a la variable de la clase llamada url, veamos como quedo su codigo final por el momento:

ControladorBase.php

<?php

namespace System;

use System\View;

class ControladorBase
{
	public $view;
	public $url;

	public function __construct()
	{
		$this->view = new View();
		$this->url = $this->getUrl();

		if (ENTORNO == 'desarrollo')
		{
			$whoops = new \Whoops\Run;
			$whoops->pushHandler(
				new \Whoops\Handler\PrettyPageHandler);
			$whoops->register();
		}
	}

	protected function getUrl()
	{
		$url = isset($_SERVER['REQUEST_URI']) ?
			rtrim($_SERVER['REQUEST_URI'],'/') :
			NULL;
		$url = filter_var($url, FILTER_SANITIZE_URL);
		return $this->url = $url;
	}
	
}
Anuncios

Si recordamos cuando creamos el archivo de configuraciones, Config.php en este post, establecimos varios valores predeterminados entre ellos uno para la pagina de inicio y otro para el metodo, por lo tanto ahora crearemos dichos elementos, primero debemos ir al directorio Controllers en el directorio app y dentro de este crearemos un nuevo archivo llamado Inicio.php al cual le agregaremos el siguiente codigo:

inicio.php

<?php

namespace App\Controllers;

use System\ControladorBase;

class Inicio extends ControladorBase
{
        public function index()
        {
                return $this->view->render('default');
        }

        public function tinchicus()
        {
                return $this->view->render('tinchicus');
        }
}
Anuncios
Anuncios

Como en todos los casos anteriores primero establecemos el namespace y luego importamos a la clase que creamos anteriormente, despues definimos a la clase Inicio y que sera heredera de ControladorBase, dentro de esta clase tenemos dos metodos, el primero sera para el metodo predeterminado (index) la cual simplemente «dibujara» por medio del metodo render de la clase View a la pagina que creamos al principio de este post, luego tenemos otros metodo que dibujara otra pagina en particular pero de eso hablaremos luego, si lo probamos veremos lo siguiente:

Anuncios

Ya tenemos una pagina mas completa, ahora vamos a probar como funciona el Whoops, para ello iremos a la pagina default.php y modificaremos el codigo de la siguiente manera:

default.php

Hola desde la vista predeterminada
<?php ohno!
Anuncios

Si refrescamos la pagina veremos lo siguiente:

Anuncios

Observen como ahora tendremos todo un detalle de nuestro error para poder verificar de una forma mas rapida cual es nuestro inconveniente, recuerden que esto se puede desactivar simplemente modificando el valor de ENTORNO de desarrollo a produccion, para corregirlo simplemente eliminen la ultima linea que agregamos y deberia volver a la normalidad, por ultimo vamos a crear un nuevo archivo que llamaremos tinchicus.php en el directorio Views de app, agreguemos la siguiente linea:

tinchicus.php

Gracias por visitar Tinchicus.com!
Anuncios

Una vez creado este nuevo archivo podemos pasar a probar esta nueva vista, view o pagina, para ver como es su resultado, para ello debemos usar la siguiente URL:

http://localhost:8000/inicio/tinchicus
Anuncios

En este caso usamos a la clase Inicio y le decimos que llame al metodo tinchicus, la cual carga a la pagina o vista tinchicus.php, veamos la nueva pagina

Anuncios

Con esto ya tenemos una forma muy avanzada de manipulacion de nuestras paginas por medio de MVC pero esto es solo el comienzo pronto avanzaremos mucho mas.

Anuncios

En resumen, hoy hemos visto como trabaja la clase controladora de base, esta se encarga de tener los metodos predeterminados para poder manejar las vistas de nuestro proyecto, hemos visto como trabaja Whoops y como podemos ver a la pagina predeterminada sino otra personalizada, espero les haya sido util sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Anuncios

Donación

Es para mantenimento del sitio, gracias!

$1.50