-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathindex.php
63 lines (54 loc) · 1.89 KB
/
index.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<?php
//invoca todo lo que esta en config
require "config.php";
$url = isset($_GET["url"]) ? $_GET["url"]:"Index/index";
//el metodo explode funciona como el toquineizzer en java.
//separo todo lo que este en el vector url por "/"
$url = explode("/", $url);
//verifico si el vector url contiene datos.
$controller = "";
$method = "";
if(isset($url[0])){
$controller = $url[0];
}
if(isset($url[1])){
//verifica que no venga vacio la posicion del nombre del metodo que se utilziara.
if($url[1] != ''){
$method = $url[1];
}
}
//me permite obtener las clases que estan siendo invocada
//de esta forma simplificamos codigo ya que no necesitamos colocar muchos require
spl_autoload_register(function($class){
//verifica si existe el archivo en la carpeta. Si llega existir
//lo une a index.php
if(file_exists(LBS.$class.".php")){
require LBS.$class.".php";
}
});
//$obj = new Controllers();
//Obtengo los datos del controlador Error
require 'Controllers/Error.php';
//Instancio la clase error para traerme los metodos.
$error = new Errors();
//llama a los controladores
$controllersPath = "Controllers/".$controller.'.php';
//verifica que existan los controladores
if(file_exists($controllersPath)){
require $controllersPath;
//instanciamos la clase.
$controller = new $controller();
if(isset($method)){
//verifico que el metodo exista dentro del controlador
if(method_exists($controller, $method)){
//Si el metodo existe lo ejecuto.
$controller->{$method}();
}else{
//si no, ejecuto el metodo error() del controlador Error
$error -> error();
}
}
}else{
$error -> error();
}
?>