2016-08-11 2 views
0

Ich verwende AltoRouter mit Twig Template. Meine index.php istAltoRouter Redirect zum Anzeigen von Twig Template

index.php

require('vendor/autoload.php'); 

$router = new AltoRouter(); 
$router->map('GET','/', function(){ 
    require __DIR__ . '/views/index_v.php'; 
}, 'inicio'); 

$router->map('GET','/historia', function(){ 
    require __DIR__ . '/views/historia_v.php'; 
}, 'historia'); 

$match = $router->match(); 

if($match && is_callable($match['target'])) {    
    call_user_func_array($match['target'], $match['params']); 
} else { 
    header($_SERVER["SERVER_PROTOCOL"] . ' 404 Not Found'); 
} 

Es funktioniert perfekt, aber ich möchte meine index.php ändern, um die $ Spiel zu verwenden, [ 'name'] oder einen anderen Parameter nennen, beispielsweise ein redirect.php

index.php (geändert)

require('vendor/autoload.php'); 

$router = new AltoRouter(); 
$router->map('GET','/', /views/redirect.php', 'inicio');  
$router->map('GET','/historia', /views/redirect.php', 'historia'); 

$match = $router->match(); 

if($match && is_callable($match['target'])) {    
    call_user_func_array($match['target'], $match['params']); 
} else { 
    header($_SERVER["SERVER_PROTOCOL"] . ' 404 Not Found'); 
} 

redirect.php

$loader = new Twig_Loader_Filesystem(array('views', 'includes', 'includes/languages/en', 'includes/languages/es', 'includes/languages/it', 'includes/languages/zh')); 

$twig = new Twig_Environment($loader); 

include('includes/languages/'.idioma().'/comunes.php'); 
include('includes/languages/'.idioma().'/historia.php');  

if($match['name'] == 'inicio'){ 
    echo $twig->render('inicio.php', array('textos'=>$textos['idioma'])); 
}elseif($match['name'] == 'historia'){ 
    echo $twig->render('historia.php', array('textos'=>$textos['idioma'], 'historia'=>$historia['idioma'])); 
} 

Meine Idee ist es, eine einzige redirect.php Datei zu verwenden, die eine oder andere Twit Vorlage

zeigt Ist es möglich?

Antwort

0

Ich habe mein Problem mit einem einzigen index.php

index.php

require('vendor/autoload.php'); 

$router = new AltoRouter(); 
$router->map('GET','/', /views/inicio.php', 'inicio.php');  
$router->map('GET','/historia', /views/historia.php', 'historia.php'); 

$loader = new Twig_Loader_Filesystem(array('views', 'includes', 'includes/languages/en', 'includes/languages/es', 'includes/languages/it', 'includes/languages/zh')); 

$twig = new Twig_Environment($loader); 

include('includes/languages/'.idioma().'/comunes.php'); 

$match = $router->match(); 

if($match && is_callable($match['target'])) {    
    echo $twig->render($match['name'], array('textos'=>$textos['idioma'])); 
} else { 
    header($_SERVER["SERVER_PROTOCOL"] . ' 404 Not Found'); 
} 
gelöst
Verwandte Themen