Foros del Web » Programando para Internet » PHP »

MVC Básico - Autoload no funciona

Estas en el tema de MVC Básico - Autoload no funciona en el foro de PHP en Foros del Web. Tengo el siguiente código funcional: Código PHP:    class  route { public static  $validRoutes =[];     public static function  set ( $route , $function ){  self :: $validRoutes []= $route ...
  #1 (permalink)  
Antiguo 01/05/2020, 07:16
 
Fecha de Ingreso: enero-2008
Mensajes: 575
Antigüedad: 12 años, 4 meses
Puntos: 9
MVC Básico - Autoload no funciona

Tengo el siguiente código funcional:
Código PHP:
  class route{ public static $validRoutes=[];
    public static function 
set($route,$function){ self::$validRoutes[]=$route
    
$function->__invoke();
}}

    
route::set('portada1',function(){echo'portada1';});
    
route::set('portada2',function(){echo'portada2';}); 

Me gustaría separarlo en varios archivos pero no consigo que funcione con autoload:

index.php
Código PHP:
  require_once 'autoload.php';
  require_once 
'routes.php'
autoload.php
Código PHP:
  spl_autoload_register(function($class){echo "$class.php";}); 
route.php
Código PHP:
  class route{ public static $validRoutes=[];
    public static function 
set($route,$function){
      
self::$validRoutes[]=$route
      
$function->__invoke();
  }} 
routes.php
Código PHP:
  route::set('portada1',function(){echo'portada1';});
  
route::set('portada2',function(){echo'portada2';}); 
  #2 (permalink)  
Antiguo 01/05/2020, 10:01
 
Fecha de Ingreso: enero-2008
Mensajes: 575
Antigüedad: 12 años, 4 meses
Puntos: 9
Respuesta: MVC Básico - Autoload no funciona

He recuelto el problema del autoload

index:
Código PHP:
    spl_autoload_register(function($class){include 'classes'.DIRECTORY_SEPARATOR."$class.php";});

    
route::set('/portada1',function(){echo'<a href="portada2">portada2</a>';});
    
route::set('/portada2',function(){echo'<a href="portada1">portada1</a>';}); 
route:
Código PHP:
    class route{
        public static function 
set($route,$function){
            
$_SERVER['REQUEST_URI']==$route && $function->__invoke();
        }
    } 
  #3 (permalink)  
Antiguo 01/05/2020, 10:18
 
Fecha de Ingreso: abril-2006
Mensajes: 426
Antigüedad: 14 años, 1 mes
Puntos: 96
Respuesta: MVC Básico - Autoload no funciona

recordad que en algunos casos INCLUDE no puede darte algunos quebraderos de cabeza, en su lugar usa REQUIRE y la Constante __DIR__
__________________
Mis aportes te ayudaron??, te hicieron ahorrar valiosos tiempo??, si quieres puedes agradecerme con un Gracias o con una donacion
https://paypal.com/pools/c/8lmNLmWnG9
  #4 (permalink)  
Antiguo 01/05/2020, 18:12
 
Fecha de Ingreso: enero-2008
Mensajes: 575
Antigüedad: 12 años, 4 meses
Puntos: 9
Respuesta: MVC Básico - Autoload no funciona

Gracias por esponder @tuadmin

Ya lo tengo con require

¿dónde recomiendas poner la función __DIR__?

Gracias
  #5 (permalink)  
Antiguo 01/05/2020, 19:41
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.693
Antigüedad: 12 años, 3 meses
Puntos: 1117
Respuesta: MVC Básico - Autoload no funciona

El __DIR__ iría en el require

Código PHP:
Ver original
  1. require_once __DIR__ . '/autoload.php';
Si no colocas el DIR sería una ruta relativa y en algunos casos puede darte problemas al no encontrar el archivo



La zona horaria es GMT -6. Ahora son las 13:49.